Sauté the aromatics: Warm the olive oil in a large pot over medium heat.
Add onion, carrots, celery, and 1/2 teaspoon salt. Cook, stirring occasionally, until softened and glossy, about 7–8 minutes. Stir in garlic and red pepper flakes; cook 30 seconds until fragrant.
Add broth and season: Pour in the broth.
Add bay leaf and Parmesan rind if using. Bring to a gentle boil, then reduce to a lively simmer. Taste and season with a pinch more salt if needed.
Cook the pasta: Stir in the pasta.
Simmer until just shy of al dente, checking package time and starting to test a minute early.
Add beans and greens: Stir in the beans and spinach. Simmer 1–2 minutes until the spinach wilts.
Finish with spring veggies: Add asparagus and peas. Simmer just until the asparagus is bright and tender-crisp and the peas are heated through, 2–4 minutes.
You want them vibrant, not mushy.
Brighten and herb it up: Remove the bay leaf and Parmesan rind. Stir in lemon zest, 1 tablespoon lemon juice, parsley, and dill or basil. Taste and adjust with more salt, pepper, or lemon juice.
Serve: Ladle into bowls.
Top with a drizzle of olive oil and grated Parmesan if you like. Serve right away while the greens still pop.