Preheat oven to 400 degrees F.
Par-cook the cauliflower: Place a steamer basket over a pot with boiling water. Bring to a boil and steam the cauliflower florets, with the lid covered tightly, for 5 to 6 minutes or until somewhat tender (it will finish cooking in the oven). Pat the cauliflower dry thoroughly to remove excess water and moisture.
In a medium pot or pan, melt the butter over medium heat. Once melted, add the flour and whisk constantly for about 3 minutes until thickened. It should be a bit pale in color and begin to smell nutty.
Gradually add the milk, stirring and breaking up any lumps. Simmer on low heat for a few minutes until thickened, stirring. Tip: To prevent lumps, add the milk in parts. Start with some of the milk and whisk to loosen it until incorporated. Then add the remaining milk gradually. It will thicken as it heats up.
Stir in 1 cup of the grated Gruyere cheese and stir until melted and creamy. Turn off the heat. Season with salt and pepper to taste.
Transfer the cooked cauliflower to a baking pan and pour the prepared cheese sauce over it, stirring to combine. Top with the remaining ¾ cup of gruyere cheese, parmesan cheese, and bread crumbs.
Bake in the preheated 400 degrees F oven for 18-20 minutes, or until bubbly and slightly golden brown. Garnish with chopped parsley. Enjoy!