Melt the butter over medium-high heat and add the onion, garlic, and Italian sausage to cook for 4-5 minutes or until onion is soft and meat browned.
Pour in three cups of the stock, then add the zucchini, basil, oregano, bay leaf, cayenne pepper (if using), and diced tomatoes.
Bring to a boil then lower the heat to simmer.
Place the remaining cup of stock and cream cheese in a blender and blend until smooth. Pour into the rest of the soup and stir.
Mix in the chopped spinach and once wilted serve the soup or allow to simmer for another half hour or more for the flavors to combine.
Serve topped with shredded Parmesan cheese.