Heat olive oil in a large pot over medium heat. Add diced onion and minced garlic; cook 4–5 minutes until golden and fragrant.
1 tablespoon olive oil, 1 small onion, 3 cloves garlic
Stir in ground cumin, chili powder, smoked paprika, and cayenne; cook 1 minute until the spices release their aroma. Add tomato paste and cook 1 more minute.
Add soaked pinto beans, vegetable broth, and bay leaf. Bring to a boil, then reduce heat, cover, and simmer 60 minutes, stirring occasionally, until beans are tender.
Remove bay leaf. Stir in lime juice and chopped cilantro. Season with salt and pepper to taste, then ladle into bowls.
1 lime, 0.25 cup cilantro
Notes
Soak beans for 8–12 hours for a creamier texture and even cooking.Refrigerate leftovers within two hours and use within 4 days, or freeze for up to 3 months.Reheat on medium heat to 165°F, stirring occasionally and adding broth if needed.