In a large skillet (at least 12-inches wide) add the butter and olive oil. Heat over medium until butter is melted and just starting to foam. Add the onion, leek, celery, carrots, ½ teaspoon salt, ¼ teaspoon pepper and paprika, if using. Cook, stirring occasionally, until the celery and carrots start to soften. About 7 minutes.
Add the minced garlic and tomato paste and stir constantly until the mixture darkens and the garlic is fragrant, about 2 minutes.
Sprinkle the flour over the vegetables and stir to combine. Cook, stirring constantly for about 2 minutes, scraping up the browned bits on the bottom of the skillet.
Add the beef broth, Worcestershire sauce, parsley, rosemary and thyme. Scrape the bottom of the pan to release any browned bits and bring to a boil, still over medium heat.
Whisk together the cornstarch with 1 tablespoon water and add it to the beef. Cook for 1 minute or until slightly thickened. Stir in the peas and remove the skillet from the heat. Check the seasoning and add salt and pepper as needed. The filling can be made ahead and stored in the fridge till needed. Return to room temperature before assembling.
Drain the potatoes completely until very dry. Use a ricer to create a fluffy mound of potatoes in a large bowl. If you don't have a potato ricer, mash the potatoes until no lumps remain.
Preheat the oven to 400F. Grease a large casserole baking dish, oven safe skillet or deep dish pie dish.
Place the dish or skillet on a rimmed baking sheet and bake on the centre rack until the filling is bubbling, about 15 - 20 minutes.
Switch to broil. Broil the casserole until the potatoes are golden brown and crusty, about 5 minutes. (Watch carefully so the top doesn't scorch.
Feel free to use ground turkey or chicken in place of the beef.
This can be assembled and refrigerated till needed. Just cover lightly, and bring to room temperature before baking.