Sweat the aromatics: Warm 1 tablespoon olive oil in a large pot over medium heat. Add the diced onion with a pinch of salt.
Cook, stirring, for 5–7 minutes until soft and translucent. Add the minced garlic and cook 30–60 seconds until fragrant.
Bloom the spices: Sprinkle in 1 teaspoon cumin, 1 teaspoon smoked paprika, and a small pinch of nutmeg. Stir for 30 seconds to wake up the spices.
Add pumpkin and broth: Stir in 2 cans (about 30 ounces) pumpkin puree and 3–4 cups broth.
Add the drained cannellini beans. Stir, bring to a gentle simmer, and cook 10 minutes to let flavors meld.
Blend until smooth: Use an immersion blender to puree the soup until velvety. If using a countertop blender, work in batches and vent the lid slightly.
Blend carefully so steam can escape.
Adjust consistency and protein: Stir in 1 to 1.5 cups unsweetened protein milk to reach your desired thickness. Taste and season with salt and pepper.
Add the yogurt: Reduce heat to low. Whisk in 3/4 to 1 cup plain Greek yogurt until fully incorporated and silky.
Do not boil after adding yogurt.
Brighten: Finish with a squeeze of lemon juice. Taste again and adjust seasoning.
Serve with toppings: Ladle into bowls and top with pumpkin seeds, a drizzle of chili oil, chopped herbs, or extra protein like shredded chicken. Enjoy warm.