Sauté aromatics: In a large pot, heat the butter and olive oil over medium heat. Add the onion and cook 3–4 minutes until soft and translucent.
Stir in the garlic and cook 30 seconds until fragrant.
Cook the cauliflower: Add the chopped cauliflower, Italian seasoning, a pinch of nutmeg, salt, and pepper. Stir to coat in the butter and spices for about 1 minute.
Add broth and simmer: Pour in the chicken broth. Bring to a gentle boil, then reduce heat and simmer 10–12 minutes, until the cauliflower is tender.
Blend for creaminess: Use an immersion blender to blend the soup base until mostly smooth.
Leave a few small pieces for texture if you like. If you don’t have an immersion blender, carefully blend in batches in a regular blender, then return to the pot.
Add dairy: Reduce heat to low. Stir in the cream cheese until melted and smooth.
Pour in the heavy cream and stir to combine.
Stir in chicken and Parmesan: Add the cooked chicken and Parmesan. Simmer on low 3–5 minutes, stirring often, until the cheese is melted and the soup thickens slightly. Avoid boiling to prevent curdling.
Finish with greens and brightness: Stir in the spinach and let it wilt, about 1 minute.
Add lemon zest or a small squeeze of lemon juice if using. Taste and adjust salt, pepper, and red pepper flakes.
Serve: Ladle into bowls and top with extra Parmesan, cracked black pepper, and chopped parsley. Enjoy hot.