For the turkey:
Preheat the oven to 350˚F, making sure the oven rack is in the lowest position.
Place the turkey on a large work surface. Trim any excess fat and pluck any pin feathers. Remove and discard the package of giblets and neck from the cavity. Rinse the inside and outside of the turkey with cool water and pat dry with paper towels.
Loosely fill the large cavity of the turkey with the stuffing, taking care not to pack it too tightly. (See cook’s note for cooking any leftover stuffing). Rub the outside of the turkey all over with the softened butter and season generously with salt and pepper. Tie the legs together loosely with kitchen twine and tuck the wing tips under the body. Transfer the turkey, breast side up, to a roasting rack positioned in a large roasting pan. Add the chicken stock to the pan.
Cover the turkey loosely with foil and roast for 3 hours, using a turkey baster to baste with the stock and pan drippings every 30 minutes. After 3 hours, remove the foil and continue to roast until the skin is browned, and an instant-read thermometer registers 180˚F when inserted into the thickest part of the thigh without touching the bone, about 45 minutes longer. The stuffing should register 165˚F. Continue to roast, if necessary, covering the turkey loosely with aluminum foil if the skin becomes too brown.
Once cooked, remove the turkey from the oven and transfer to a serving platter or cutting board. Set aside to rest for 15 – 20 minutes before carving.
For the stuffing:
Preheat oven to 350˚F.
Arrange the cubed bread in a single layer on two baking sheets and bake in the oven until crisp and lightly golden, about 12-15 minutes. Remove from the oven and allow to cool.
Coarsely chop the cooked chestnut meat and set aside.
Heat olive oil in a large skillet over medium heat and cook the onions until softened, but not browned, about 5 minutes. Add the garlic and cook until fragrant, about 2 minutes. Add the sliced mushrooms and fry until they are just starting to soften but still hold their shape, about 5 minutes. Remove from the heat and allow to cool slightly.
In a large bowl, mix together the toasted bread, chopped chestnut meat, and the onion and mushroom mixture. Add the cranberries, chopped herbs and salt and pepper, and toss to combine. In a separate small bowl, whisk together the eggs and the broth and then add to the bread mixture. Toss again to combine. The stuffing should be slightly wet – you can add more broth if you find it to be too dry.
Fill your turkey with the stuffing as instructed. Any leftover stuffing can be baked in a buttered oven-safe dish as explained in the cook’s note.
Any leftover stuffing can be added to a buttered oven-safe dish, covered with foil, and refrigerated until ready to bake. When turkey is almost finished, add the dish to the oven and bake, covered, at 350˚F for 15 – 20 minutes. Uncover and bake until the top is golden, about 5 – 10 minutes longer. Remove from the oven and allow to cool slightly before serving.