01 - Set the oven temperature to 400°F (200°C).
02 - Heat olive oil in a large skillet or Dutch oven over medium-high heat. Brown beef cubes in batches until well-seared, then remove and set aside.
03 - In the same pan, add onion, garlic, carrots, and celery. Cook until softened, approximately 5 minutes.
04 - Stir in tomato paste and flour, cooking for 1 minute to remove raw flavor.
05 - Return beef to the pan. Add beef broth, red wine, Worcestershire sauce, thyme, rosemary, bay leaf, salt, and pepper. Bring to a simmer, cover, and cook on low heat for 1 hour, stirring occasionally until beef is tender and sauce thickens. Remove bay leaf.
06 - Boil potatoes in salted water until fork-tender, about 15 minutes. Drain and mash with butter and milk. Season with salt and pepper to taste.
07 - Layer the beef filling into a pie dish. Spread mashed potatoes evenly over the top.
08 - Roll pastry over the pie, trim excess edges, and press to seal. Cut slits on top for steam to escape.
09 - Brush the pastry with beaten egg. Bake for 30 minutes or until the crust is golden brown and crisp.
10 - Allow the pie to rest for 10 minutes before slicing and serving.