In a large pot, warm the olive oil over medium heat. Once the oil is shimmering, add the diced onion, diced carrots, and diced celery. Stir occasionally, cooking for about 10 minutes until the vegetables begin to soften and the onion turns translucent.
Next, stir in the garlic and sauté for another minute until fragrant. Be careful not to let it burn, as burnt garlic can ruin the flavor.
Add the cooked pinto beans, vegetable broth, salt, and pepper to the pot. If your broth is on the saltier side, hold back on the salt until the end. Bring the mixture to a boil.
Once boiling, reduce the heat to medium-low. Let the soup simmer for about 30 minutes. You want the flavors to meld and the vegetables to be tender.
While the soup is simmering, take some bread and cut it into cubes. Toss these cubes in a skillet with a drizzle of olive oil and a sprinkle of salt. Toast them over medium heat until they are golden brown and crunchy. This will make for lovely croutons to top your soup!
After 30 minutes, remove the pot from the heat. Using an immersion blender, carefully purée the soup until it’s smooth and creamy. If you don’t have an immersion blender, you can transfer the mixture in batches to a standard blender, but be cautious with hot liquids.
Return the puréed soup to the pot. Stir in the chopped dill and chopped parsley. This will brighten the flavors and add freshness.
For extra creaminess, add the coconut milk and stir until well combined. Return the pot to low heat, warming the soup gently without boiling.
Once heated through, taste the soup and adjust the salt and pepper if necessary. It’s essential to ensure it’s perfectly seasoned!
Finally, ladle the soup into bowls. Drizzle additional coconut milk on top for a lovely finish and sprinkle with more parsley. Add the crunchy croutons for some texture and serve warm.