In a large saucepan, heat the oil then saute the carrots, celery, and onion over medium heat until they begin to soften, about 5 minutes.
Add in garlic and saute for another 2-3 minutes.
Stir in broth, salt, pepper, rosemary, bay leaf, and beans.
Heat to a boil over medium-high heat then reduce it again to simmer over medium heat for 15 minutes.
Remove the rosemary (if using whole sprig) and bay leaf.
Use an immersion blender to puree a portion of the soup, about 10 pulses so some of the beans retain their consistency.
Garnish with fresh pepper and parsley. Serve hot.