Place the cauliflower florets on a baking sheet. Drizzle with olive oil, then season with garlic powder, salt and pepper. Toss to coat, then roast in the oven for 20 minutes, turning at the halfway point.
Meanwhile, melt the butter in a small saucepan over low heat. Add the flour, stirring constantly with a whisk or wooden spoon until well blended. Slowly whisk in the warm milk and stir until the mixture thickens, about 3-5 minutes.
Remove from heat, season with nutmeg and mix in half the cheese.
Transfer the roasted cauliflower from a baking pan to an 8x11 casserole dish. Pour the sauce evenly on top. Then sprinkle with the remaining gruyere and panko breadcrumbs.
Low the oven temperature to 375°F and bake until the top is browned and bubbly, about 20-25 minutes.
Storage: Store any leftovers in an airtight container. They will last up to 3 days in the fridge, but the consistency is best if eaten the first day. To reheat, place in the microwave for a minute or in the oven at 350°F for 5 minutes. I would not recommend freezing the dish though.Substitutes: For best results, follow the recipe as is. However here are some common substitutes that would work well in this recipe.
Use other types of shredded cheese in place of gruyere if you'd prefer. Since this recipe is French in origin, gruyere is the traditional cheese use, but it works well with mozzarella and/or parmesan cheese.
Instead of milk, you can use dairy-free milk like unsweetened almond milk.
Instead of butter, you can use olive oil.
To make it gluten-free, you can use almond flour or a GF 1:1 mix. Here's an excellent post on how to make gluten-free roux.