Cook the bacon in a large skillet over medium heat until crisp.
Transfer the bacon to a paper towel-lined plate. Allow it to cool, then crumble or chop it into small pieces. Reserve some bacon for garnish.
If desired, leave approximately 1 tablespoon of bacon grease in the skillet. Add the diced onion and celery and cook for 2–3 minutes. Add the minced garlic and cook for another 30 seconds.
Add the diced potatoes, cooked onion, celery, garlic, chicken broth, dried thyme, garlic powder, black pepper, salt, and bay leaf to a 6-quart crockpot.
Stir in half of the cooked bacon, reserving the rest for topping.
Cover and cook on LOW for 6–8 hours or HIGH for 3–4 hours, until the potatoes are tender and easily pierced with a fork.
Remove and discard the bay leaf.
Use a potato masher to mash some of the potatoes directly in the crockpot. Leave some potato pieces whole for a chunky texture.
Stir in the whole milk, heavy cream, and sour cream.
Add the shredded cheddar cheese gradually, stirring until it melts into the soup.
Cover and cook for another 20–30 minutes on the Keep Warm or LOW setting. Do not allow the soup to boil after adding the dairy ingredients.
Taste the soup and adjust the salt and black pepper as needed.
Ladle the soup into bowls and top with the remaining crispy bacon, extra cheddar cheese, green onions, and fresh chives or parsley.