Boil the potatoes: Add potato chunks to a large pot, cover with cold water, and season with a good pinch of salt.
Bring to a boil and cook until very tender, about 15–18 minutes. Drain well.
Make the mash: Return potatoes to the pot. Add butter and warm milk.
Mash until smooth and fluffy. Season with salt and pepper to taste. Set aside.
Brown the meat: Heat olive oil or butter in a large skillet over medium-high heat.
Add ground lamb or beef, breaking it up with a spoon. Cook until browned and most liquid cooks off, about 6–8 minutes. Drain excess fat if needed.
Build flavor: Add onion and carrots to the skillet.
Cook, stirring, until softened, 5–7 minutes. Stir in garlic and cook 30 seconds until fragrant.
Thicken the filling: Sprinkle flour over the mixture and stir for 1 minute to coat. This helps the sauce thicken later.
Sauce it up: Stir in tomato paste, Worcestershire, thyme, salt, and pepper.
Pour in broth and bring to a simmer. Cook 3–5 minutes, stirring, until the mixture is thick and glossy.
Peas last: Stir in frozen peas. Taste and adjust seasoning.
The filling should be well-seasoned and slightly saucy, not watery.
Assemble: Transfer the filling to a 9x9-inch (or similar) baking dish. Spoon mashed potatoes over the top. Use a fork to spread and rough up the surface—those ridges get crispy.
Sprinkle cheddar on top if using.
Bake: Bake at 400°F (200°C) for 20–25 minutes, until the top is lightly golden and the edges bubble. For extra browning, broil 1–2 minutes at the end.
Rest and serve: Let the pie sit 5–10 minutes to set. Garnish with parsley and serve warm.