Sauté the veggies: Heat olive oil in a large pot over medium heat. Add the diced onion, garlic, and carrots, and sauté for 5-6 minutes until the vegetables begin to soften.
Add peppers and cabbage: Stir in the diced bell pepper and shredded cabbage. Cook for another 3-4 minutes, allowing the cabbage to wilt slightly.
Add zucchini and tomatoes: If you're using zucchini, add it now along with the can of diced tomatoes (with juices). Stir everything together.
Pour in stock and beans: Add the vegetable or chicken stock and the drained beans. Stir to combine, then season with oregano, basil, thyme, salt, and pepper.
Simmer: Bring the soup to a boil, then reduce the heat to low. Let it simmer for about 15 minutes, until the vegetables are tender.
Cook the pasta: In a separate pot, cook the pasta according to package instructions. Drain and set aside. (You can also add the uncooked pasta directly to the soup, but it may absorb more broth.)
Final touches: If you're using spinach or kale, stir it into the soup during the last few minutes of cooking until wilted. Taste and adjust seasoning as needed.
Serve: Ladle the soup into bowls, add the cooked pasta, and top with grated Parmesan cheese. Enjoy!
This soup is flexible, so feel free to swap ingredients based on what you have. It also stores well for leftovers!