Boil potatoes in salted water 15 to 18 minutes until fork-tender. Drain. Return to hot pot 1 to 2 minutes to dry out. Mash with butter and warm cream. Season with salt and white pepper. Stir in egg yolk if using. Cover and set aside.
Preheat oven to 400°F (205°C).
Heat oil in a large skillet over medium heat. Cook onion and carrots 6 to 8 minutes until softened. Add garlic, cook 1 minute.
Add tomato paste. Cook 2 minutes, stirring, until it darkens slightly.
Increase heat to medium-high. Add ground meat. Cook, breaking apart, until fully browned. Drain excess fat if needed.
Sprinkle flour over meat mixture. Stir and cook 1 to 2 minutes.
Add Worcestershire sauce, beef broth, thyme, and rosemary. Bring to a simmer. Cook uncovered 10 to 12 minutes until the gravy is thick and coats the meat. Stir in peas. Taste and season well.
Transfer filling to a 9x13 baking dish. Spread mashed potatoes over the top, sealing to the edges. Fork the surface to create ridges. Sprinkle with parmesan if using.
Bake 25 to 30 minutes until the topping is golden and the filling is bubbling at the edges. Broil 2 to 3 minutes if you want a deeper golden top.
Rest 5 to 10 minutes before serving.