Wash beans and pick out any misfits. Place beans in a crock pot and cover with 3 cups of chicken stock. Cook on low for 6-8 hours or until tender. Check crock pot periodically to make sure beans don't go dry. Add more stock if necessary.
In a large soup pot, cook the bacon over moderate heat, stirring, until browned and crisp, about 7 minutes. Drain, reserving the fat and bacon separately.
Heat the olive oil in the soup pot. Add the onion, carrot and celery and cook over moderate heat, stirring occasionally, until the vegetables are softened, about 8 minutes.
Stir in the garlic, bay leaf, thyme and rosemary and cook until fragrant, about 2 minutes. Add the beans and any liquid left in the crockpot. Add remaining stock and 3 tablespoons of the reserved bacon fat and bring to a boil.
Simmer the soup over low heat until the flavors have married. About 30 minutes.
Discard the bay leaf and season the soup with salt and pepper and transfer to shallow bowls.
Garnish the soup with the bacon and serve.