Heat the oil in a large pot over medium heat. Add the onion, celery, and carrots and cook, stirring regularly, until softened but not browned. Add the garlic and cook for another minute.
Add the beans, tomatoes, vegetables (I used green beans and cauliflower), vegetable broth, bay leaf, rosemary, and pepper. Stir to combine and bring to a boil. Simmer for 10 minutes.
Add the zucchini and pasta (see note). Cook for another 10-15 minutes until the pasta is al dente and the vegetables are cooked and have some bite.*If you want to make the slower version of this soup, add all the vegetables at once and let the soup simmer for at least 1 hour. Add the pasta either 10-15 minutes before the end of the cooking time.
Remove the bay leaf and stir in the spinach and parsley. Check the seasoning and add salt as needed. Serve hot with shredded Parmesan cheese for garnish, if desired.
Notes
You can use kidney beans, great northern beans, fava beans, black beans, or even chickpeas. Just use whatever you have on hand. Minestrone is a soup made out of leftovers or veggies that grow in your garden. It’s super versatile and forgiving.
You can use whatever vegetables you have on hand or are in season - green beans, cauliflower, pumpkin, squash, broccoli, more carrots. Add them to the soup in order of their cooking time. You can also use frozen vegetables to cut down on prep time.
If you don’t want to serve the Minestrone right away or prefer to cook more for meal prep, I recommend cooking the pasta separately and adding it to the soup when serving. The pasta can get a bit mushy during reheating otherwise.