01 -  Preheat oven to 375°F. Lightly grease a 9x13-inch casserole dish with butter or nonstick spray. 
 02 -  In a large mixing bowl, whisk eggs, whole milk, Dijon mustard, garlic powder, smoked paprika, salt, and black pepper until fully combined. 
 03 -  Arrange 6 slices of sourdough bread in the base of the casserole dish, trimming to fit as needed. Evenly spread half the softened cream cheese over the bread slices. 
 04 -  Distribute half of the sharp cheddar, Gruyère, and mozzarella cheeses evenly over the bread. Add half of the sliced tomatoes, red onion, spinach leaves, and chopped bacon if using. 
 05 -  Repeat with remaining bread slices, cream cheese, shredded cheeses, tomatoes, red onion, spinach, and bacon to create a second layer. 
 06 -  Pour the egg and milk mixture evenly over the entire casserole. Gently press down on the layers to help the bread absorb the liquid. 
 07 -  Drizzle melted unsalted butter over the top layer. Sprinkle with chives or green onions. 
 08 -  Cover casserole with foil and bake for 25 minutes. 
 09 -  Remove foil and bake an additional 10 minutes, until golden brown and bubbling. 
 10 -  Allow casserole to rest for 5 to 10 minutes before slicing into squares. Serve warm.