Heat olive oil in a large pot or Dutch oven over medium heat. Add onion, celery, and carrots. Sauté for 7-8 minutes until vegetables begin to soften.
Add garlic and cook for 1 minute until fragrant, stirring constantly.
Stir in zucchini, crushed tomatoes, vegetable broth, Italian seasoning, and bay leaf. Bring to a boil.
Reduce heat to medium-low and simmer for 15 minutes, stirring occasionally.
Add cannellini beans, green beans, and pasta. Simmer for 10-12 minutes until pasta is tender and green beans are cooked through.
Stir in baby spinach and cook for 2 minutes until wilted. Remove bay leaf and season with salt and pepper to taste.
Serve hot with a generous sprinkle of Parmesan cheese on top and crusty bread on the side. Leftovers keep beautifully for up to 5 days!