Prep and preheat: Heat the oven to 400°F (200°C). Lightly grease a 9x13-inch baking dish or similar casserole pan.
Par-cook the cauliflower: Bring a large pot of salted water to a boil.
Add florets and cook 3–4 minutes until just tender but still firm in the center. Drain well and set aside. For less water, you can steam instead.
Make the roux: In a medium saucepan over medium heat, melt the butter.
Add garlic and cook 30–60 seconds until fragrant, not brown. Sprinkle in the flour and whisk for 1–2 minutes to form a smooth paste.
Build the sauce: Slowly whisk in the milk, then the broth, smoothing out any lumps. Keep whisking until the sauce gently simmers and thickens, 3–5 minutes.
Add the flavor: Stir in Parmesan, mozzarella, nutmeg, Dijon, salt, and pepper.
Taste and adjust seasoning. The sauce should be well-salted and garlicky.
Combine: Add the drained cauliflower to the baking dish. Pour the sauce over and toss gently to coat.
Spread into an even layer.
Top and bake: Sprinkle a little extra Parmesan over the top. Bake 18–22 minutes until bubbling at the edges.
Optional broil: For a deeper golden crust, switch to broil for 1–2 minutes. Watch closely to avoid burning.
Rest and serve: Let it sit 5 minutes so the sauce sets slightly.
Garnish with parsley and serve warm.