Preheat the oven to 400° and line a baking sheet with foil. Also, lightly mist a small/medium-sized baking dish with cooking spray.
Cut the tops off of the heads of garlic and place each of the heads onto a small square of foil. Drizzle with olive oil, wrap tightly, and place into the oven directly onto the wire rack.
Next, toss the cauliflower florets with a generous drizzle of the olive oil, a large pinch of Kosher salt, a pinch of black pepper, a pinch of the cayenne pepper, ¼ teaspoon of the paprika, and the onion and garlic, and put that onto the foil-lined baking sheet. Place into the oven next to the foil-wrapped garlic and roast together for about 30 minutes, until cauliflower is slightly charred and soft, and garlic is soft and aromatic.
Remove the cauliflower and garlic heads from the oven, and turn the oven up to 450°.
Unwrap the garlic heads from the foil to allow them to completely cool before squeezing them from their papers and smashing them into a paste with a knife or fork. Allow the cauliflower florets to completely cool, and then very finely chop them. Set both of those aside.
For the base of the dip, take a large bowl and add the softened cream cheese, the sour cream, the mayo, the grated parmesan, ½ cup of the shredded cheddar/gruyere blend, the parsley, lemon zest, Herbs de Provence, the white wine, ¾ teaspoon of salt and another pinch of cayenne pepper (if desired). Fold those ingredients together until fairly smooth and well combined.
Next, add in the chopped baby spinach, the chopped cauliflower and the roasted garlic paste, and fold those in until well incorporated.
Spread the mixture out into the prepared baking dish, smooth the top out a bit, and sprinkle over the remainder of the shredded cheddar/gruyere cheese. Sprinkle another little pinch of the Herbs de Provence and paprika over the cheese, and bake in the oven for about 20-22 minutes, or until golden and bubbly. Serve warm with pita chips.