Heat olive oil in a large pot over medium heat. Cook onion, carrots, and celery for 5 to 6 minutes until softened.
Add garlic, thyme, oregano, and red pepper flakes. Cook for 1 minute until fragrant.
Add crushed tomatoes. Stir and cook for 2 minutes to caramelize slightly.
Add vegetable stock, cannellini beans, parmesan rind, and bay leaf. Bring to a gentle boil.
Add green beans and asparagus. Cook for 5 minutes.
Add pasta. Cook for 2 minutes less than the package directions.
Add zucchini and peas. Cook for 3 more minutes.
Turn off heat. Stir in spinach and let wilt for 1 minute.
Remove parmesan rind and bay leaf. Season with salt and pepper.
Ladle into bowls. Finish with parmesan, fresh herbs, and a generous drizzle of olive oil.