Preheat oven to 425 degrees. Cover a large baking sheet with foil or parchment paper. Place cauliflower florets the baking sheet. Drizzle the olive oil over the cauliflower along with the desired amount of salt & pepper. Toss the cauliflower to coat. Spread the cauliflower to an even layer and leaving space around the florets to allow roasting on not steaming. Bake for 20 to 25 minutes, or until golden. Remove from oven and set aside.
In a large pot over medium heat, melt the butter. Add the onion and saute until translucent, about 4 to 5 minutes. Add the garlic, and saute for 3o seconds or until fragrant. Add the flour and constantly stir with a whisk until golden, about 2 minutes.
Slowly add the milk, vegetable broth, and half & half and stir with the whisk until incorporated. Add the roasted cauliflower, parsley, thyme, and bay leaf. Stir to combine. Bring the mixture to a boil, stirring often. Once the mixture reaches a boil, immediately, reduce the heat to low.
At this point, you can puree 3 to 4 cups of the mixture in a blender (be careful with hot liquids in the blender - they expand), and add back to the pot. Or, you can take an easier & less messy option, my choice. Use a potato masher, and mash some of the florets in the pot leaving some whole.
Remove the pot from the heat. Immediately, add 1 cup of the white cheddar cheese & the parmesan cheese. Stir until melted and incorporated. Add additional salt & pepper if desired.
Serve topped with grated white cheddar cheese & chopped parsley.