Add olive oil to a large pot over high heat. Once hot, add the beef along with salt and pepper. Let it sear for about 1 minute per side, then crumble and cook until deeply browned. Once cooked, use a slotted spoon to remove the beef, leaving behind about 2-3 tablespoons of grease. If there is any more than that, discard excess.
Add the carrots, celery, and onion to the pot. Sauté for 6–8 minutes until softened. Don't rush this! Add the potatoes, garlic, and seasonings, stirring constantly for 1–2 minutes until fragrant.
Add the chicken stock and bay leaf. Bring to a boil over medium-high heat, then reduce to medium. Cover and simmer for 10–15 minutes, or until the potatoes are tender.
In a separate pot, melt the butter over medium heat. Whisk in the flour and cook for 1 minute, stirring constantly. Slowly add the milk, whisking until smooth. Cook until thickened and gently bubbling, then stir in the heavy cream and remove from heat.
Pour the cream mixture into the soup along with the cooked beef, peas, and corn. Stir well. Reduce heat to low and add Cheddar one handful at a time, stirring until smooth and creamy. Cook, stirring occasionally, until nicely thickened. Taste and adjust seasoning as needed. Remove and discard bay leaf. Stir in Worcestershire sauce.
Serve warm, topped with fresh parsley or thyme, alongside toasted buttered bread.
Video
Notes
Storage: Store leftovers in an airtight container in the fridge for 3–4 days. Reheat gently with a splash of milk or broth.