In a large Dutch oven or heavy-bottomed pot, cook the chopped bacon over medium heat until crispy, which should take about 8 minutes. Use a slotted spoon to transfer the bacon to a paper towel-lined plate, leaving the drippings in the pot.
Add the butter to the bacon drippings. Once melted, add the chopped onion and cook for about 5 minutes until softened and translucent. Add the minced garlic and cook for 1 more minute until fragrant.
Sprinkle the flour over the onion and garlic mixture and whisk constantly for 1 minute to form a paste. This will create the roux that thickens the soup.
Gradually pour in the chicken broth while whisking continuously to prevent lumps. Add the cubed potatoes, dried thyme, and bay leaf. Bring the soup to a boil, then reduce the heat to a simmer.
Cover the pot and simmer for 15-20 minutes, or until the potatoes are very tender and easily pierced with a fork.
Remove the bay leaf. Use a potato masher to partially mash the potatoes in the pot, leaving some chunks for texture. Stir in the heavy cream and grated Parmesan cheese until the cheese is fully melted and the soup is creamy. Season with salt and pepper.
Ladle the soup into bowls and top with the reserved crispy bacon and fresh parsley before serving.