Brown the sausage: Place a large pot or Dutch oven over medium heat. Add a drizzle of oil if needed.
Crumble the Italian sausage into the pot and cook, breaking it up with a spoon, until well-browned and no longer pink, about 6–8 minutes. Spoon off excess fat if there’s more than a tablespoon left.
Sauté aromatics: Add the diced onion and cook until translucent, 3–4 minutes. Stir in the garlic and cook until fragrant, about 30 seconds.
Add veggies and seasoning: Stir in the bell pepper, cauliflower, Italian seasoning, and red pepper flakes.
Cook 2–3 minutes to lightly soften and bloom the spices.
Simmer the soup: Pour in the chicken broth, scraping up any browned bits from the bottom of the pot. Bring to a gentle boil, then reduce to a simmer. Cook 10–12 minutes, or until the cauliflower is tender but not mushy.
Finish with cream and greens: Add the zucchini and simmer 2–3 minutes.
Lower the heat and stir in the heavy cream and spinach or kale. Simmer gently another 2–3 minutes until the greens wilt and the soup is creamy. Do not boil after adding cream.
Season and serve: Taste and season with salt and black pepper.
Ladle into bowls and garnish with chopped herbs and Parmesan if using.