Heat olive oil in a large pot over medium heat. Add onion, carrots, and celery. Cook for 5-7 minutes until vegetables begin to soften.
Add garlic and cook for another minute until fragrant.
Add zucchini and potatoes. Cook for 3-4 minutes, stirring occasionally.
Pour in diced tomatoes, tomato paste, and broth. Add oregano, basil, bay leaves, salt, and pepper.
Bring to a boil, then reduce heat and simmer covered for 20 minutes or until potatoes are nearly tender.
Add kidney beans and pasta. Cook for another 8-10 minutes until pasta is al dente.
Stir in spinach and cook for 2 minutes until wilted.
Remove bay leaves. Taste and adjust seasoning if needed.
Serve hot, topped with grated Parmesan cheese if desired.
