01 - Preheat oven to 350°F and grease a 9x13 inch baking dish with butter.
02 - In a large skillet over medium heat, cook sausage, breaking it up, until browned and fully cooked, about 6 to 8 minutes. Transfer to a plate, leaving 1 tablespoon of fat in the skillet.
03 - Add diced onion and red bell pepper to the skillet; cook until softened, about 4 to 5 minutes. Stir in spinach and cook until wilted, about 1 to 2 minutes. Remove from heat.
04 - In a large bowl, whisk together eggs, whole milk, heavy cream, salt, black pepper, garlic powder, and dried thyme until smooth.
05 - Layer half the bread cubes in the prepared dish, followed by half the sausage, half the vegetable mixture, and half the cheeses. Repeat layers with remaining ingredients.
06 - Pour egg mixture evenly over the assembled layers, pressing gently to allow bread to absorb the liquid.
07 - Cover dish with foil and refrigerate for at least 30 minutes or up to overnight for best flavor development.
08 - Bake covered with foil for 30 minutes in the preheated oven.
09 - Remove foil and continue baking for an additional 20 minutes or until center is set and top is golden.
10 - Allow to rest for 10 minutes before slicing and serving.