This soup has a few components that can be tackled separately and in advance: the soffrito works as the base and you’ll have quite a bit leftover that you can then freeze and use for soups in the future. As for the pesto, I didn’t have pistachios as the original recipe called for so I used hazelnuts instead. Like most pesto recipes, I treat it as a formula more than anything so use any nuts and greens you like here; it’ll turn out great.
Adapted from Bon Appetit
To make the soffrito: Heat oil in a large skillet over medium-high. Cook onions, leeks and celery, stirring often, until soft but not browned, about 6-8 minutes. Season with a pinch of salt.
To make the pesto: Preheat the oven to 350 F. Toast nuts on a rimmed baking sheet, tossing once, until golden brown, 6-8 minutes. Let cool; crush using a small sauce pan (you want a mix of sizes).
Pulse garlic, basil, parsley and 1/3 cup oil in a food processor until a coarse puree forms. Transfer to a medium bowl and mix with Parmesan, lemon zest, crushed nuts, and remaining 1/3 cup oil; season with salt and pepper.
Soup and assembly: Heat oil in a medium pot over medium-high. Add the thyme and zucchini and cook until tender, about 6 -7 minutes. Add bay leaf and 1 cup soffrito and cook down until fragrant, about 2 minutes (Reserve remaining soffrito for another use; see note below).
Add stock and bring to a boil. Reduce heat to a simmer and add peas, kale, beans and cook until kale is wilted and peas are tender, about 3 minutes. Taste and adjust the seasoning with salt and pepper, as needed. Remove and discard bay leaf.
Serve soup, topped with pesto, Parmesan and red pepper flakes.
Note on Soffrito: The base can be made 3 days ahead. Let cool, cover and refrigerate (or freeze for up to 1 month).