-
1
Preheat the oven to 350 degrees F. Butter a 9-by-13-inch casserole dish.
-
2
Heat 2 tablespoons of the butter in a large skillet over medium-high heat.
-
3
Add the onions and cook, stirring occasionally, until lightly browned, about 5 minutes.
-
4
Lower the heat to medium and continue cooking and stirring until the onions are soft and caramelized, 20 minutes more.
-
5
If they start to burn, lower the heat further.
-
6
Season with salt and black pepper.
-
7
Meanwhile, heat another large skillet over medium heat.
-
8
Add 2 tablespoons of the butter and the bread and cook, stirring occasionally, until light golden brown all over, about 8 minutes.
-
9
Season with salt and black pepper.
-
10
Transfer the bread to a large bowl.
-
11
Increase the heat to medium-high, add the remaining 2 tablespoons butter and the mushrooms and cook undisturbed to brown for 1 minute.
-
12
Continue cooking, stirring occasionally, until soft, about 2 minutes more.
-
13
Season with salt and black pepper.
-
14
Whisk together the eggs, half-and-half, mustard, cayenne, 1/2 teaspoon salt and a few grinds of black pepper in a large bowl.
-
15
Stir in the onions, bread, mushrooms, ham and 1 cup of the Gruyere.
-
16
Transfer the mixture to the buttered baking dish.
-
17
Top with a single layer of tomatoes and sprinkle with the remaining 1/2 cup Gruyere and the Parmesan.
-
18
(The casserole can be refrigerated overnight and baked the next day.)
-
19
Bake until the top is golden brown and the casserole is set (doesn't jiggle when shaken), about 40 minutes.
-
20
Top with the parsley.