Heat a 5-7 qt dutch oven over medium high heat. Add bacon strips, cooking until crispy, then remove to a paper towel lined plate, leaving the bacon grease behind.
Add butter to the dutch oven and melt, then add onion, garlic, celery, and carrots. Sauté for 2-3 minutes until fragrant and the carrots begin to soften slightly.
Add flour and stir to combine with the veggies and butter. Cook for at least 1 minute, then whisk in chicken stock and half and half, scraping up any browned bits from the bottom of the dutch oven.
Add all remaining ingredients except the cooked bacon, stirring to combine. Bring to a boil, then reduce heat to a simmer for 10-15 minutes or until the potatoes are fork tender. Remove from heat.
Chop bacon into small bits, then add as a garnish to the soup before serving.