Dry the bread. Preheat the oven to 300°F. Spread the sourdough cubes on baking sheets and bake for 15-20 minutes, stirring occasionally, until dry throughout. They should be dry enough to absorb the broth, but not deeply golden or like croutons. Let cool.
Prepare the baking dish. Increase the oven temperature to 350°F. Grease a 9 × 13-inch baking dish with butter. Place the dried bread cubes in the baking dish.
Cook the vegetables. Melt the butter in a large skillet over medium heat. Add the onion and celery with the salt and pepper. Cook for 8–10 minutes, until softened.
Add the garlic and herbs. Stir in the garlic, sage, parsley, and rosemary. Cook another 2-3 minutes, until fragrant.
Combine with the bread. Pour the butter and vegetable mixture over the bread cubes. Toss well so the bread is evenly coated.
Add broth and eggs. In a separate bowl, whisk eggs then add broth and whisk together. Pour over the bread mixture and gently fold until thoroughly combined. If the bread still seems dry, add a little more broth as needed.
Bake. Bake uncovered for 45–50 minutes, until the top is golden and crisp and the center reaches 160°F. If the top browns too quickly, cover loosely with foil.