Preheat the oven to 400°F. Grease a 9x13-inch casserole dish and set aside.
Start by steaming the cauliflower. To steam, add the florets to a Dutch oven or saucepan with about ½-inch of water and about 1 teaspoon of salt. The amount of water you need will depend on the size of your pan - we used about 2 cups. Bring to a boil, then reduce to a simmer and cook for 5-6 minutes until soft. Drain, then place the cauliflower in the prepared casserole dish, and sprinkle the cauliflower with a bit more salt. Set aside.
In the same skillet, add 4 tablespoons of butter and melt over medium heat. Add the onion with a pinch of salt, and cook until starting to soften, about 3 minutes.
Sprinkle in the flour, and cook for 1-2 minutes, stirring to prevent burning.
Add in the garlic and seasonings, and cook until garlic is fragrant, stirring often to prevent burning, for about 1 minute.
Reduce the heat to medium-low, then slowly stream in the 2 cups of cream and ½ cup of milk, stirring to combine.
Once the milk and cream mixture is hot but not boiling, reduce the heat to low, and begin adding the cheddar cheese in small handfuls, stirring constantly until melted, and waiting until one handful of cheese is melted before adding another one.
Adjust the seasonings to taste, then pour over top of the cauliflower in the casserole dish. Toss to coat the cauliflower completely.
In a separate small bowl, combine 2 ounces of parmesan, 1 cup of panko bread crumbs, and 3 tablespoons of melted butter with a pinch of salt and chives. Sprinkle the mixture evenly over the top of the cauliflower.
Bake for 23-30 minutes, until bubbly and golden brown. Allow to cool for a few minutes before digging in!
Store leftovers in an airtight container in the fridge for up to 4-5 days. Reheat gently in the microwave, in the air fryer, or oven. We don't recommend freezing this dish, as it will change the texture of the cheese sauce.