In a large pot, heat the olive oil over medium heat. Add the Italian sausage and cook until browned, breaking it up with a spoon, about 5-7 minutes. Drain excess fat if necessary.
Add the diced onion, garlic, carrots, and celery to the pot. Sauté until the vegetables are tender, about 5-6 minutes.
Stir in the oregano, basil, and red pepper flakes (if using). Cook for an additional minute until fragrant.
Pour in the chicken broth and diced tomatoes. Bring the mixture to a boil, then reduce the heat and let it simmer for 15 minutes.
Stir in the heavy cream and Parmesan cheese, mixing until the cheese is melted and the soup is creamy. Add the fresh spinach and cook for another 2-3 minutes until wilted.
Season with salt and pepper to taste. Serve hot, garnished with fresh parsley.