Soak the Beans (Optional): If you prefer a quicker cooking time, soak the beans overnight. Otherwise, proceed with unsoaked beans (just increase cook time).
Sauté the Vegetables: In a large pot, heat the olive oil over medium heat. Add the diced onion, carrots, and celery. Cook until softened, about 5 minutes. Stir occasionally to prevent burning.
Add the Garlic and Spices: Add the minced garlic, cumin, thyme, and bay leaf to the pot. Stir for about 1 minute until fragrant.
Add the Beans and Broth: Pour in the soaked (or unsoaked) beans and vegetable broth. Bring the mixture to a boil, then reduce to a simmer. Let it cook uncovered for 45 minutes to 1 hour, until the beans are tender and the flavors meld together.
Season to Taste: Add salt and pepper to taste. For a smoother texture, you can blend a portion of the soup using an immersion blender.