Whisk together milk, cream, eggs, and salt & pepper.
Heat shallot and garlic in a skillet over medium-high heat for about 1 minutes. Add spinach and heat until wilted. Remove from heat and add to pudding mixture.
Place bread, bacon, and gruyere into a 9x13 greased baking dish. Stir to disperse ingredients evenly throughout.
Pour pudding mixture over top and stir again if needed.
Cover with aluminum foil and bake for 30 minutes. Remove foil and bake an additional 10 minutes.
Recipe by Rachel Schultz at https://rachelschultz.com/2013/10/20/savory-breakfast-bread-pudding/