Peel and chop the potatoes into 2-3 cm chunks. Place them in a large pot and cover with salted water. Bring to a boil and cook for 15 minutes until tender. Drain well.
While the potatoes cook, heat a skillet over medium heat. Add a tablespoon of butter and sauté diced onions and minced garlic for about 5-7 minutes until they turn fragrant and golden.
Add the ground meat to the skillet and cook, breaking it apart with a spatula, until browned and cooked through, about 8-10 minutes. Drain excess fat if necessary.
Stir in diced carrots and cook for another 5 minutes until slightly softened. Add peas, beef or lamb stock, and Worcestershire sauce. Simmer for 10 minutes until the mixture thickens and the flavors meld.
Drain the cooked potatoes and return them to the pot. Add butter and warm milk, then mash until smooth and fluffy. Season with salt and pepper to taste.
Preheat your oven to 200°C (400°F). Spread the meat and vegetable filling evenly in an ovenproof dish.
Spoon the mashed potatoes over the filling, spreading them out with a spatula to create an even layer. If desired, sprinkle grated cheddar cheese on top.
Bake in the oven for 20-25 minutes until the top is golden brown and bubbling around the edges.
Remove from oven and let rest for 5 minutes. Then, scoop and serve hot, enjoying the crispy top and savory filling.