Heat a Dutch oven or large soup pot over medium heat, add the ground beef and diced onion, season with salt and pepper, and cook stirring often until the ground beef is cook through. About 10 minutes.
Once the beef is done, transfer it to the bowl and set aside until ready to use. Discard the grease.
Place your bacon in the same pot and cook stirring often until brown and crispy, about 5 minutes. Remove the bacon from the pan and set aside until ready to use.
Add the butter to the same pot(you can drain off some of the bacon grease if you like, but I usually don’t) once the butter is melted, add the garlic, carrots, celery, and potatoes to the pot, and cook stirring often until the celery has begun to soften and the garlic is fragrant, about 5 minutes.
Add the ground beef mixture back to the pan, followed by the spices, brown sugar, ketchup, mustard, hot sauce, dill pickle juice, and Worcestershire sauce. Stir to combine.
Sprinkle the flour over the mixture, and stir until everything is nicely coated in the flour.
Add the beef broth and stir to combine. Then add the chicken broth, followed by the half and half, and stir.
Bring the soup to a simmer, stirring often, and cook until the potatoes and carrots are tender and the soup has thickened slightly. About 20 minutes.
Remove the pan from the heat, add the shredded cheese, and stir until the cheese is completely melted, add the bacon back to the pan, be sure to save some for sprinkling on top! Season with salt and pepper, taste and adjust the seasoning if needed.
Serve immediately, topped with shredded cheese, crumbled bacon, and green onions.
Enjoy!