01 - Whisk together flour and salt in a large bowl. Cut in cold butter with a pastry blender or fingertips until mixture resembles coarse crumbs. Gradually add ice water, mixing until dough just comes together. Divide dough in half, form into disks, wrap in plastic, and refrigerate at least 1 hour.
02 - Season beef with salt and pepper. Heat olive oil in a Dutch oven over medium-high heat. Sear beef in batches until browned on all sides. Remove beef and set aside.
03 - Add onion, garlic, carrots, and celery to the pot. Cook, stirring occasionally, until softened, about 5 to 7 minutes.
04 - Stir in tomato paste and cook for 1 minute. Sprinkle over flour and cook for another minute while stirring to eliminate raw flour taste.
05 - Return browned beef to pot. Add beef broth, red wine, Worcestershire sauce, thyme, and bay leaf. Bring to a boil, then reduce heat to low, cover, and simmer for 1 hour, stirring occasionally, until beef is tender.
06 - Stir in frozen peas and cook for an additional 5 minutes. Remove bay leaf. Allow filling to cool to room temperature to prevent soggy crust.
07 - Preheat oven to 400°F. Roll out one pastry disk on a floured surface to fit a 9-inch pie dish. Line dish with pastry and trim excess. Fill with cooled beef mixture.
08 - Roll out second pastry disk and place over filling. Trim, seal, and crimp edges. Cut slits on top for steam vents. Brush with beaten egg.
09 - Place pie on a baking sheet and bake for 40 to 45 minutes until the crust is golden brown. Let rest for 15 minutes before slicing and serving.