Melt butter in a large Dutch oven or pot. Saute the carrot, onion, and celery for 4-5 minutes until soft and fragrant. Stir in the garlic for 1 minute, then add 2 tsp sage, rosemary, and thyme and stir to combine. Dump in the potatoes and pour the broth or water overtop. Bring to a boil, then lower to a heavy simmer and cook for 15-20 minutes until the potatoes are very soft and break apart when stabbed with a fork.
Use an immersion blender to puree the soup until very smooth, thick, and creamy. If needed, add 1/2-1 cup of broth or water if it seems too thick. Alternatively, if you've still ignored me this far into our friendship, transfer batches of soup to a blender and carefully blitz until creamy. Add back to the pot and repeat until all the soup is pureed. Taste for salt and pepper.
In a small bowl, whisk together the flour, baking powder, parmesan, the remaining 2 tsp of sage, and a pinch of salt. Make a well in the center of the flour mixture and slowly stream in 1 cup of buttermilk. Stir until a cohesive but sticky dough forms. You may not need all of the buttermilk.
Drop 1 tablespoon sized dollops of dumpling batter straight into the soup. Cover and simmer 8-10 minutes until the dumplings aggressively blow up into floury balloons and feel hollow when tapped. Move to one side of the pot and gently stir in the coconut milk. Ladle soup into bowls and serve with fresh herbs.