Steam the broccoli for 3 to 4 minutes. The florets should still be bright green and crisp (not mushy)
Preheat the oven to 375 °F(190C)
Grease an 8 by 8 inch casserole dish (or similar size)
In a medium sized saucepan over medium heat, melt the butter.
Add the garlic and chopped onion and cook until translucent and fragrant.
Stir in the flour, onion powder, salt and pepper and coat the onion mixture.
Pour in the milk and mix well.
Soften the cream cheese, if you haven't already. (microwave on the soften setting)
Bring the milk mixture to a simmer. (do not boil)
Remove the pan from the heat.
Add the softened cream cheese to the hot milk mixture and stir until melted and the mixture is creamy.
Stir in 1 cup of the grated cheddar and stir until melted.
Add the broccoli and stir until well coated.
Pour the mixture into the greased baking dish.
In a separate dish, mix the mozzarella and remaining cheddar together.
Spread the cheese mix over the broccoli mixture.
Sprinkle the parmesan over the top.
Bake for 30-35 minutes, or until the top is golden and bubbly.
Remove it from the oven and allow it to rest for 5 minutes before serving.