Heat a large pan over medium heat and add the olive oil.
Add the chopped onion and minced garlic and cook for 5 minutes, stirring occasionally, until the onion is translucent.
Add the garbanzo beans (reserving ¼ cup of beans) and 1 cup of chicken broth to the pan with the onion and garlic. Simmer for 5 minutes.
Using an immersion blender, puree the soup until it is smooth with no lumps.
Add the reserved beans, remaining chicken broth, bay leaf, smoked paprika, saffron threads, and salt and pepper to the pan. Turn up the heat to medium and simmer for 10 minutes, stirring occasionally.
Remove the bay leaf from the soup and discard it.
Transfer the soup into shallow bowls and sprinkle with finely chopped parsley for garnish.
Notes
Use high-quality ingredients: This soup is made with relatively few ingredients, so make sure to to use the best quality ingredients. Look for high-quality olive oil, fresh garlic and onion, and flavorful spices.
Reserve some beans: Reserving some of the garbanzo beans before pureeing the soup will give it a chunky texture and add some visual interest.
Use an immersion blender: Using an immersion blender makes pureeing the soup a breeze, and it's much easier to use than a regular blender. If you don't have an immersion blender, a regular blender will work, but you'll need to let the soup cool slightly before blending it.
Don't overcook the soup: Overcooking the soup can cause it to become too thick and lose some of its flavor. Keep an eye on it as it simmers and adjust the heat as needed.
Adjust the seasoning to taste: This recipe is a starting point, and you should feel free to adjust the seasoning to your liking. If you like spicy food, add more paprika or cayenne pepper. If you like your soup less salty, use less salt.
Serve with garnishes: Serving the soup with a sprinkle of fresh parsley or some croutons can add a nice touch and add some extra flavor and texture.