Heat olive oil in a large pot over medium heat. Add chopped onion and sauté until translucent, about 5 minutes.
Crumble Italian sausage into the pot and brown for 8 minutes, breaking it up as it cooks.
Stir in diced carrots, celery, and minced garlic; cook for 5 minutes until softened.
Pour in chicken broth and bring to a gentle simmer. Mix in heavy cream until combined.
Add fresh spinach and season with salt and pepper. Simmer for an additional 5 minutes.
Ladle hot soup into bowls and top with grated Parmesan cheese before serving.