Preheat oven to 400°F (200°C).
Boil potatoes in salted water until tender, about 15 minutes. Drain and mash with butter, milk, salt, and pepper. Set aside.
Heat olive oil in a large skillet. Add onion, garlic, and carrots. Cook until softened.
Add ground beef and cook until browned, breaking it up as it cooks.
Stir in tomato paste, Worcestershire sauce, and flour, cooking for 1–2 minutes.
Pour in beef broth, stir, and simmer until the mixture thickens. Add peas and season with salt and pepper.
Transfer mixture to a baking dish and spread evenly.
Top with mashed potatoes, smoothing the surface with a spoon.
Bake for 20 minutes, or until the top is golden and bubbling.
Garnish with parsley and serve hot.