01 - Set oven temperature to 400°F.
02 - Heat olive oil in a large skillet over medium heat. Add onion, carrots, and celery; sauté for 6 to 8 minutes until softened.
03 - Stir in minced garlic and cook for 1 minute. Add ground beef and cook until browned, breaking apart any clumps.
04 - Mix in tomato paste and flour; cook for 2 minutes to combine flavors.
05 - Slowly pour in beef stock while stirring. Add Worcestershire sauce, thyme, rosemary, and bay leaf. Bring mixture to a simmer.
06 - Reduce heat and cook uncovered for 20 minutes, stirring occasionally until thickened. Remove bay leaf, stir in frozen peas, and season with salt and black pepper. Remove from heat.
07 - Place peeled and cubed potatoes in a large saucepan. Cover with cold salted water and bring to a boil, then simmer for 15 to 20 minutes until tender.
08 - Drain potatoes and return to saucepan. Add butter and warmed milk, mashing until smooth and fluffy. Season with salt and white pepper. Stir in egg yolk if desired.
09 - Transfer beef filling to a large baking dish. Spread mashed potatoes evenly over the top, roughening surface with a fork for texture.
10 - Place baking dish on a tray and bake for 25 to 30 minutes until the top is golden and filling is bubbling at the edges.
11 - Allow the dish to rest for 10 minutes before serving.