Heat the olive oil and butter in a Dutch oven or large pot over medium heat until the butter has melted. Add the onion and sauté for 3 minutes until the onion turns translucent.
Add the ground Italian sausage to the pot and cook, stirring frequently to break up the meat, for 4-5 minutes until browned.
Stir in the minced garlic and dried Italian seasoning. Cook, stirring frequently, for 1 minute or until fragrant.
Add the diced tomatoes, tomato paste, and broth. Stir to combine, bring the soup to a simmer, and let it cook for 12 minutes. If using the zucchini or green beans, add them 5 minutes into the cooking time.
Stir in the ravioli. Bring the soup back to a simmer and cook for 3 ½ minutes if using frozen and 2 ½ minutes if using fresh. While the ravioli cooks, whisk the half-and-half and flour together until smooth.
Stir the half-and-half mixture, ½ cup Parmesan cheese, and ½ teaspoon black pepper into the soup until well combined. Return the soup to a simmer and cook for 2-3 more minutes until the cheese has melted and the soup is lightly thickened.
Remove the soup from the heat and stir in the baby spinach until wilted. Season the soup to taste with salt and additional pepper if desired.
Garnish individual bowls with grated Parmesan cheese and chopped flat-leaf parsley or fresh basil. Enjoy!