Start by heating a large pot over medium heat. Add the ground beef and cook until it’s no longer pink. Break it into small crumbles as it browns. Once fully cooked, drain any excess fat, remove the beef from the pot, and set it aside. This step keeps the soup from becoming greasy while locking in a meaty flavor.
In the same pot, melt the butter over medium heat. Add the diced onion, carrots, and celery. Stir occasionally and cook until they begin to soften, about 5 to 7 minutes. Add the minced garlic, Worcestershire sauce, basil, parsley, salt, and pepper. Let everything cook for another minute to release the aromatics and flavor the base.
Sprinkle the flour over the vegetable mix and stir until fully incorporated. This forms a roux that will help thicken the soup. Slowly whisk in the chicken broth and milk while constantly stirring. Cook for 2 minutes or until the mixture starts to thicken slightly, forming a creamy soup base.
Add the peeled, cubed potatoes into the pot. Turn up the heat to bring the mixture to a gentle boil, then reduce the heat to low and let it simmer uncovered. Stir occasionally and cook for about 10 to 15 minutes, or until the potatoes are fork-tender and partially broken down into the soup.
Return the cooked beef to the pot. Then, add the American cheese slices one at a time, stirring until each slice is fully melted into the soup. This step gives the soup its creamy, cheesy finish. Taste and adjust seasoning if needed. Serve hot in bowls, with optional toppings like toasted bun cubes, bacon crumbles, or chopped pickles.