Preheat the oven to 325°F.
In a large roasting dish, add the onions, garlic, celery, carrots, and bay leaves, and set aside.
Place the turkey on a sheet tray and tuck the wings under. Pat dry with paper towels.
In a large bowl add the butter, minced garlic, parsley, lemon juice, rosemary, thyme, sage, salt, poultry seasoning, and pepper.
Stir together until combined.
Use your hands to carefully separate the skin from the meat. You need to place your hand under the skin at the neck and start separating the skin from the breast meat. Work your hand all the way down and around the turkey breast, even going into the leg and thigh area. You need to make sure you do not puncture the skin.
Next, add the compound butter under the skin, leaving about 2 tablespoons of it behind. I take a small spoon with butter on it, work it under the skin and use my hand on top to smush the butter around all over the meat.
Make sure the breast area is completely covered with the butter and go down to the leg area as well, where you separated the skin.
Take the remaining butter and smear it all over the outside of the skin.
Place the turkey on top of the vegetables in the roasting pan.
Next, fill the cavity with the sliced lemon, sliced orange, garlic, parsley, thyme, bay leaves, rosemary, and sage.
Take some kitchen twine and tie the legs together. The legs should criss-cross when tightly tied.
Place in the oven and bake for 13-15 minutes per pound. The turkey is ready when a thermometer inserted into the thickest meat of the thigh, not touching the bone, reaches 165°F. If it looks like the skin is browning too fast, add a large piece of foil tented over the roasting dish. I had to do this about 1 hour before the turkey was cooked through.
Take the turkey out of the oven and let it rest for at least 30 minutes before slicing.
To make the gravy, place the vegetables from the roasting dish into a colander over a large bowl to let any excess drippings, drip off into the bowl and discard. Pour the remaining drippings through the colander to catch any solids.
Let the drippings sit so the fat will rise to the top. Skim off the fat or use a gravy separator to help. What’s left should be the pure drippings/liquid.
We want 4 cups of drippings, so measure it and if there is not enough, add a little chicken stock to it until you get 4 cups.
In a large skillet, add the butter and let it melt. Whisk in the flour, and cook for 1 minute.
Very slowly, stream in the drippings while constantly whisking to avoid lumps. Season with pepper. Let simmer until thickened, about 5 minutes. Taste, and add salt or more pepper if needed.
Cut the twine and take it off of the legs, slice the turkey and serve with the gravy.