Prepare the vegetables. Dice the following (no larger than 1/2-inch), keeping them separate: 1 medium yellow onion (about 1 cup), 6 medium stalks celery (about 2 cups), 1 large zucchini (about 2 cups), 3 peeled medium carrots (about 1 1/4 cups), and 1 peeled small sweet potato (about 2 cups). Finely chop 2 garlic cloves. Drain and rinse 1 can white beans.
Sauté the mirepoix. Place 2 tablespoons olive oil and 2 tablespoons unsalted butter in a large stockpot or Dutch oven over medium-high heat. Once the butter melts and begins to sizzle, add the onion and 1 teaspoon kosher salt, and sauté until softened but not browned about 3 minutes. Add the carrots and celery and cook until brightened in color, 3 to 5 minutes.
Sauté the vegetables. Add the sweet potato and sauté until slightly softened at the edges, about 3 minutes. Stir in the zucchini and garlic, and cook until softened, about 2 minutes.
Add seasonings, tomatoes, and broth. Add 1 (2x3-inch) Parmesan rind, 1 can diced tomatoes and their juices, 6 cups chicken or vegetable broth, and the beans. Stir to combine and bring to a boil over medium-high heat.
Simmer for 30 minutes. Reduce the heat to medium-low and simmer until the carrots and sweet potato are tender, 20 to 30 minutes.
Remove the Parmesan rind. Remove and discard the Parmesan rind.
Stir in the pesto, lemon juice, and greens. Squeeze in the juice from 1/2 lemon (about 1 tablespoon). Stir in 2 tablespoons basil pesto and 4 cups baby spinach or baby kale and simmer until combined and the greens wilt. Taste and season with salt as needed.
Serve the soup. Ladle the soup into bowls. Thinly shave Parmesan cheese with a Y-peeler and scatter onto the soup, and drizzle with more pesto. Serve with crusty bread.