Cook the bacon. I like to cook mine in the oven for a much cleaner process. Plus it makes it super crisp and delicious! To do so, Preheat the oven to 400 degrees F. Line the bottom of a cookie sheet with tin foil, and place a cooling rack on top. Place bacon strips on the rack and cook for 15-20 minutes. I like my bacon a little more crisp and 20 minutes was perfect for me. Once bacon is out of the oven and cooled, crumble into bits and set aside.
Peel and chop all vegetables and potatoes to have them all ready to add to the pot.
In a large soup pot, carefully brown the butter. Do not let it burn, watch it closely. Turn stove to medium heat. Add in garlic, onion, carrots, and celery. Cook, stirring occasionally, until veggies are mostly cooked. A fork should easily go through a carrot. About 10 minutes.
Stir in the 1/2 cup of flour and cook for a few more minutes. Add the potatoes, chicken broth, salt & pepper and bring to a boil. Reduce the heat to a simmer and let cook for about 10-15 minutes, until potatoes are about halfway cooked.
Using a whisk, slowly stir in the milk and cream. Slowly add in the cheeses while continually stirring. Add in parsley leaves and bay leaf. Let cook on low heat for 20 more minutes, or until potatoes are fully cooked. The soup will thicken the more it cooks. Remember to take the bay leaf out before serving! Or you could do what we did growing up and whoever gets the leaf in their bowl is the “winner” ;)
Ladle the soup into bowls and top with bacon, cheese, and fresh thyme leaves.