Toss the cauliflower, red onion and garlic in a large bowl with the olive oil, parsley, oregano, salt and pepper.
Spread the cualiflower evenly on a baking sheet and roast in the oven for 25 minutes, stirring once.
While the cauliflower is roasting melt the butter in a medium pot over medium heat. Once the butter is melted add the flour and whisk continuoulsy. Slowly add the cream into the flour mixture and turn the heat up to medium-high and simmer whisking constantly.
Turn the heat to medium and simmer until the mixture is thickened. Remove the pot from the heat and stir in 1/2 cup of the gruyere cheese and 1/4 cup of the Parmesan cheese.
Remove the roasted cauliflower from the oven and transfer to a non-stick 8x11 baking pan or dish. Pour the cream cheese sauce over the cauliflower making sure it is even throughout the pan.
Bake in the oven for 10 minutes then add the remaining cheese, the sharp cheddar cheese and the breadcrumbs {optional} and bake for another 5 minutes or until the cheese is melted on top.
Notes
You can omit the red onion and the breadcrumbs if you want.
You can use either regular breadcrumbs or panko for extra crunch.
I used heavy cream in this dish for a creamier sauce but you can also use whole milk or 2 %. I don't suggest using 1% or skim as the sauce turns a lot thinner and less creamy.