In a large skillet, cook the ground breakfast sausage until fully browned, breaking it apart.
If using, add the diced onion and bell pepper during the last 5-7 minutes of cooking the sausage to soften them. Drain any excess grease and set aside.
Assembly
Lightly grease a 9x13 inch baking dish and spread the cubed bread evenly across the bottom.
Sprinkle the cooked sausage and vegetable mixture evenly over the bread cubes, then sprinkle 1 cup of the shredded cheese over the sausage layer.
In a large bowl, whisk together the eggs, milk, salt, pepper, and garlic powder until well combined.
Carefully pour the egg mixture over the bread, sausage, and cheese, gently pressing down on the bread cubes to ensure they are submerged.
Baking
Cover the baking dish and refrigerate for at least 30 minutes, or preferably overnight.
Preheat your oven to 375°F (190°C), then remove the casserole from the refrigerator, uncover, and sprinkle the remaining 1/2 cup of shredded cheese over the top.
Bake for 40-50 minutes until the casserole is set in the center, golden brown on top, and the cheese is bubbly.
Let the casserole rest for 5-10 minutes before slicing and serving.
Notes
For best results, chill the casserole overnight to allow the bread to fully absorb the egg mixture.