Let the bread cubes sit out overnight if you have time. If not, bake them in a single layer on sheet trays at 200°F for 30 minutes, stirring every 10 minutes. Set aside.
Preheat the oven to 350 degrees F. Spray an 11x7 baking dish with cooking spray, set aside.
In a large skillet over medium heat, melt the 1 cup of the butter. Add the celery and onion, and cook, until softened and the onion is translucent, occasionally stirring for 10 minutes.
Add the garlic, parsley, salt, sage, pepper, thyme, poultry seasoning, and rosemary. Mix them in and cook for 1 minute, take off the heat.
Mix the eggs and 2 cups of stock together well in a bowl.
Add the bread cubes and vegetable mixture to a large bowl, and stir to combine.
Add the egg and stock mixture, stir to combine. Let it sit for 10 minutes so the bread can absorb the liquid. It should be very moist but not wet, if it seems too dry to you, add another cup of stock.
Pour the stuffing into the prepared baking dish. Melt the remaining 4 tablespoons of butter and drizzle it on top.
Cover with foil and bake for 40 minutes. Remove the foil and bake for an additional 20-30 minutes until golden brown and crispy on top. Place a sheet tray under the baking dish to catch any drips.
Let cool for 10 minutes and serve with fresh chopped parsley for optional garnish.