In a large pot or Dutch oven, brown the ground beef over medium heat. Drain off any excess grease.
Add the diced onion and chopped celery to the pot and cook until softened, about 5 minutes.
Stir in the shredded carrot and dried parsley.
Pour in the chicken broth and add the cubed potatoes. Bring to a boil, then reduce heat and simmer until the potatoes are tender, about 15-20 minutes.
While the soup simmers, prepare the roux. In a small saucepan, melt the butter over medium heat. Whisk in the flour and cook for 1-2 minutes, stirring constantly.
Gradually whisk in the milk, ensuring there are no lumps. Continue to cook, stirring constantly, until the sauce thickens, about 2-3 minutes.
Slowly pour the roux into the soup, stirring constantly to combine.
Reduce the heat to low and stir in the shredded cheddar cheese until melted and smooth. Do not boil after adding the cheese.
Season with salt and pepper to taste. Serve hot.