Preheat oven to 375°F and grease an 8x11 or 9x13 casserole dish.
Chop cauliflower into florets and place in a large pot. Add enough water to cover the cauliflower and heat until water is boiling. Reduce heat to medium-low and simmer until the cauliflower is tender, but still firm (about 4-5 minutes). Drain, pat dry and set aside.
1 large head of cauliflower
Smaller florets may need less than 4–5 minutes. If they’re already tender but still firm, drain them right away rather than waiting for the full cooking time.
While cauliflower is cooking, add butter to a large saucepan and heat over medium heat. Add chopped onion and garlic and sauté until tender and fragrant, about 3-4 minutes.
2 Tablespoons butter, ¼ cup yellow onion, 2 garlic cloves
Add flour, salt, pepper and nutmeg. Stir to combine. Slowly add almond milk and bring mixture to a boil, whisking constantly until the sauce coats the back of a spoon but is still easy to pour.
2 Tablespoons all-purpose flour, ½ teaspoon sea salt, ½ teaspoon ground pepper, Pinch of nutmeg, 1 cup unsweetened almond milk
Remove from heat and add ¾ cup gruyere cheese and ¼ cup parmesan, mixing until fully melted and smooth.
0.75 cup shredded gruyere cheese, 0.25 cup shredded parmesan cheese
Add cauliflower to prepared baking dish then pour sauce evenly over cauliflower.
Top with remaining cheese and breadcrumbs or almond meal.
0.25 cup shredded gruyere cheese, 0.25 cup shredded parmesan cheese, ½ cup panko breadcrumbs or almond meal
Bake for 25–30 minutes, until the sauce is bubbling and the topping is golden. For a more browned topping, broil for 1–2 minutes, watching closely to prevent burning.
Let cool for a few minutes then serve warm topped with fresh parsley.
Fresh parsley
Notes
Make ahead: Assemble the cauliflower and sauce up to one day ahead. Cover and refrigerate, keeping the breadcrumbs and reserved cheese separate. Add the topping before baking. Allow additional baking time as needed until the center is hot and the sauce is bubbling. Loosely cover with foil if the topping browns first.
Storage: Refrigerate leftovers in an airtight container for 3–4 days. Reheat individual portions in the microwave or warm in a 350°F oven until hot throughout.