Preheat the oven to 350˚F.
Put the potatoes in a medium saucepan, cover with water and bring to a simmer; cook until fork-tender.
Drizzle some oil into a large skillet, set it over medium-high heat and cook the beef and onion for 4-5 minutes, breaking the meat up with a spoon until it’s no longer pink inside.
Sprinkle the flour over the meat and stir to coat.
Add the stock, tomato paste and Worcestershire and bring to a simmer, stirring often, until the mixture thickens.
Stir in the carrots and peas, season with salt and pepper and pour into a baking dish.
Drain the potatoes and return them to the pot with the butter and milk. Roughly mash, then spread over the beef mixture.
Place on a baking sheet (to catch any drips) and bake for 30 minutes, or until heated through and bubbly.