In a non-stick skillet, cook bacon until crisp. Remove bacon to paper towels to drain. Allow bacon to cool and crumble. Add onions and celery to bacon fat and cook until tender. Stir in mushrooms and cook until golden. Stir in seasonings. Remove skillet from heat and let cool.
Preheat oven to 450 degrees. Soak 3 cups stuffing croutons in water. Squeeze out water from croutons so that they are moist but not soggy. In a large bowl, combine dry and moist croutons with onion mushroom mixture. Mix in eggs and moisten with water if necessary. Fill cavity of turkey with stuffing. Cover opening of cavity with foil. Tuck wings under turkey. Make a small slit in neck skin and tuck legs through slit to secure. Transfer leftover stuffing to a baking dish, cover with foil and bake alongside turkey. (This may need to be moistened.) Place stuffed turkey in roasting pan. Rub turkey with butter and season. Roast uncovered for 30 minutes. Reduce heat to 350 degrees and continue roasting for approximately 3 hours or 15 to 20 minutes per pound. Baste the turkey with its drippings occasionally as it cooks. Turkey is done when pricked with a knife on the thigh the juices run clear. When turkey is done, transfer to a cutting board and cover with foil. Allow turkey to rest so that juices can be reabsorbed. Place roasting pan over medium high heat. Skim off excess fat with a spoon and reserve in a bowl. Add 3 cups hot chicken stock and bring to a simmer. Using a wooden spoon, scrape up brown bits stuck to bottom of pan. In a small dish, combine into a paste 3 tablespoons flour with 3 tablespoons of reserved fat. Whisk flour mixture into simmering gravy. Season with salt and pepper.
Recipe Courtesy of Food Network Kitchens