Place the peeled and cubed potatoes into a large pot and cover with cold, salted water. Bring to a boil, then simmer for 15-18 minutes until fork-tender. Drain well and return to the warm pot to steam dry for 1-2 minutes.
Heat olive oil in a large skillet over medium-high heat. Add ground beef and cook for 6-8 minutes, breaking it apart with a wooden spoon, until browned with no pink remaining. Drain excess fat, leaving about 1 tablespoon in the pan.
Add the diced onion, carrots, and celery to the skillet and cook for 5-6 minutes until softened. Stir in the minced garlic and cook for 30 seconds until fragrant. Sprinkle the flour over the mixture and stir well, cooking for 1 minute to remove the raw flour taste.
Slowly pour in the beef stock while stirring constantly to prevent lumps. Add the Worcestershire sauce, tomato paste, ketchup, thyme, and bay leaves, and season with salt and pepper. Simmer uncovered for 12-15 minutes until thickened, then remove and discard the bay leaves.
Preheat oven to 400°F. Add butter and warmed milk to the drained potatoes and mash until smooth and creamy using a masher or ricer. Season with salt and pepper to taste.
Spread the beef and gravy mixture evenly into a 9x13 inch baking dish. Spoon the mashed potatoes over the top in large dollops and gently spread to cover completely, sealing the edges. Run a fork over the surface to create texture for crisping.
Sprinkle the panko breadcrumbs evenly over the mashed potato layer, then top with the grated cheddar cheese. Bake uncovered for 20-25 minutes until golden brown and bubbling at the edges. Let rest for 5-10 minutes before serving, then garnish with parsley.