To lightly toast and dehydrate the bread, place the bread cubes on a half-size rimmed baking sheet and toast in the oven at 210°F (100°C) for 90 minutes, flipping every 30 minutes. This can be done a few days ahead.
Preheat the oven to 350°F (180°C), or 160°C if using a fan oven. Spray a 9×13 inch casserole dish with nonstick spray.
In a large 12-inch skillet, over medium heat, melt the butter and heat olive oil. Add the onion and celery and sauté until they start to soften.
Add the mushrooms, season with salt and black pepper, and cook until the mushrooms are tender.
Add the garlic and cook for 30 seconds or until it’s fragrant, then remove from heat.
In a bowl, whisk the eggs with 1 cup of the vegetable stock. Set aside.
In a large mixing bowl, combine the toasted bread with the mushroom mixture and chopped herbs.
Pour the egg mixture all over the bread, then toss the bread with your hands. Gradually add the remaining vegetable stock until the bread is soaked but not mushy.
Cover with foil and bake in the oven for 30 minutes. The pudding is ready when the internal temperature reaches 160°C. Remove the foil and continue cooking for 10 more minutes or until the top starts to brown. Serve warm.