To a very large Dutch oven or stockpot, add the oil and heat over medium-high heat to warm.: The kitchen should begin to smell faintly warm and the oil shimmers when ready, signaling it will coat the pan evenly and transfer heat to the vegetables without burning. Warming oil at medium high ensures efficient sautéing, but watch carefully because oil can go from shimmering to smoking quickly; if you see wisps of smoke, reduce heat immediately. A common mistake is overheating the pan which scorches aromatics, so I wait until the oil moves like molten glass but is not smoking. This technique matters because gentle, even heat helps the onion and garlic release sugars and aroma, building the soup's flavor foundation. I also tilt the pot and test with a small piece of onion to verify the surface is ready before adding all vegetables.
Add the onion, zucchini, carrots, celery, and sauté for about 10 minutes, or until vegetables begin to soften. Stir intermittently.: As the vegetables cook the pan will issue soft sizzling sounds and the edges of the onion will take on a translucent sheen, indicating sugars are breaking down into caramel like notes. Stirring intermittently prevents sticking and encourages even browning on different pieces. I look for a tender bite in carrot slices and slightly softened zucchini; that combination ensures the soup will have varied texture after cooking. Overcrowding the pot reduces browning and leads to steaming rather than sautéing, so use a very large pot or cook in batches. If you end up with too much moisture in the pan, increase heat briefly to evaporate excess liquid before proceeding.
Add the garlic and sauté for another 1 to 2 minutes.: Once the garlic hits the warm vegetables the aroma should become immediate and sweetly pungent, with quick sizzles. This short time allows the garlic to bloom and infuse the oil without turning bitter. You will notice tiny fragrant wisps and a warm, almost nutty scent; that is the garlic caramelizing slightly. A common mistake is leaving garlic too long which makes it harsh, so add it last in the sauté sequence and watch the clock. The why is simple: garlic's volatile compounds enrich the soup when gently cooked but degrade into off flavors if burned.
Add the vegetable broth, macaroni, tomatoes and juice, kidney beans, white beans, green beans, bay leaves, basil, thyme, oregano, rosemary, pepper, and bring to a boil.: As you add the cool broth the pot will hiss softly and steam will rise, carrying herbaceous and tomato aromas. Stir briefly to combine so the macaroni is submerged and the canned items spread their juices through the liquid. Bringing the pot to a boil locks in flavors and begins the pasta cooking process, but keep an eye on even heat because a violent boil can break apart delicate beans and cause foaming. I add dried herbs now to allow them to rehydrate and release their essences. A common mistake is to dump the pasta on top so it floats, cook it uncovered, and end up with unevenly cooked shapes, so stir gently after adding.
Allow mixture to boil gently for about 15 minutes or until macaroni is cooked through. At any time while making the soup, if the overall liquid level is lower than you like and you prefer more broth, adding a cup or two of water or additional vegetable broth is okay. At the end you will adjust the salt level.: During this period the pot should settle into a steady gentle boil, with rhythmic bubbling and a fragrant, savory steam. The macaroni will slowly become tender and the broth will take on a fuller body as starches release. Stir occasionally to prevent the pasta from settling to the bottom. If you notice the liquid reducing more than you want, add warm water or broth a cup at a time so you do not shock the temperature, which could interrupt cooking. A common error is letting pasta overcook; remove a piece to taste at the lower end of the time range if you prefer some chew.
Add the spinach, parsley, optional lemon juice (brightens up the flavor), and boil 1 to 2 minutes, or until spinach and parsley are wilted and vibrant.: At this stage the kitchen will be perfumed with fresh green notes as the spinach collapses into the warm broth and the chopped parsley softens and releases bright, herbaceous oils. The leaves should become glossy and deeply green rather than dull, which signals they are cooked just enough. Adding lemon juice now lifts the entire pot, cutting through starch and bean richness with acid. A frequent mistake is cooking the greens for too long until they turn limp and dull, so add them at the end for immediate vibrancy.
Taste soup and add salt to taste. I added about 1 tablespoon but this will vary based on how salty the brand of vegetable broth, tomatoes, and the various beans are, and upon personal preference.: This tasting moment is crucial because canned goods and broths differ widely in sodium. Use a spoon to test temperature and flavor balance, and add small amounts of salt incrementally until the soup sings. Salt amplifies the other flavors and rounds the dish, but oversalting is easy to do, so proceed with restraint. If you oversalt accidentally, adding a peeled, raw potato and simmering briefly can absorb some excess salt, though it may alter texture.
Make any necessary seasoning adjustments (i. e. more salt, pepper, herbs, etc.), remove the bay leaves, optionally garnish with parmesan, and serve immediately.: Once seasoning is adjusted, remove the bay leaves so no leathery pieces end up in bowls. At service, a grating of parmesan will melt into hot soup and add savory depth. Serve while steaming hot so the aromatics and textures are at their best; as the bowl cools the pasta will continue to absorb liquid. A common mistake is reheating repeatedly which dries out the soup, so reheat gently and add a splash of broth if needed.