In a large pot, heat the olive oil over medium heat. Add the diced onion and sauté for about 5 minutes until softened.
Stir in the minced garlic and cook for an additional 1 minute until fragrant.
Add the carrots, celery, zucchini, and bell pepper to the pot. Cook for about 5-7 minutes, stirring occasionally, until the vegetables begin to soften.
Add the green beans, diced tomatoes (with juices), vegetable broth, basil, oregano, salt, and black pepper. Bring the mixture to a boil.
Reduce the heat to low and let the soup simmer for 20-25 minutes, or until all the vegetables are tender.
Stir in the frozen peas and fresh spinach, and cook for an additional 5 minutes until the spinach is wilted.
Add the balsamic vinegar and stir to combine. Taste and adjust seasoning if necessary.
Serve hot, topped with grated Parmesan cheese if desired.