Prep the oven and pan: Heat your oven to 350°F (175°C). Grease a 9x13-inch baking dish with butter or cooking spray.
Cook the sausage: In a large skillet over medium heat, cook the sausage, breaking it into small pieces, until browned and cooked through.
Transfer to a paper towel–lined plate.
Sauté the vegetables: In the same skillet, add the chopped onion and bell pepper. Cook for 4–5 minutes until softened and slightly caramelized. Season lightly with salt and pepper.
Assemble the base: Spread the bread cubes evenly in the greased baking dish.
Scatter the cooked sausage and vegetables over the top.
Mix the custard: In a large bowl, whisk eggs, milk (and cream if using), salt, black pepper, garlic powder, and smoked paprika until smooth.
Add the cheese: Stir in 2 cups of the shredded cheese, reserving 1 cup for the top.
Pour and rest: Pour the egg mixture over the bread, pressing down gently to help the bread absorb the liquid. Let it sit for 10–15 minutes to soak. For overnight prep, cover and refrigerate up to 12 hours.
Top and bake: Sprinkle the remaining 1 cup cheese on top.
Bake uncovered for 40–50 minutes, until the center is set and the top is golden. A knife inserted near the center should come out clean.
Rest and garnish: Let the casserole rest for 10 minutes before slicing. Garnish with sliced green onions.
Serve: Cut into squares and serve warm.
Add hot sauce or salsa if you like a kick.