In a large pan, heat olive oil over medium heat.
Add garlic, and onion, sauté for about 1 minute. Then add carrot, and celery, sauté until softened.
Increase heat to high and add ground beef. Cook breaking it up as you go, until browned. Drain excess fat if necessary. Sprinkle flour over the beef and vegetables. Stir to combine.
Add tomato paste, beef broth, red wine, Worcestershire sauce, thyme, bay leaves, salt, and black pepper. Cook until it reaches a boil, then lower the heat to medium-low and simmer for around 30 minutes, stirring occasionally, until the mixture thickens. Taste and add more salt if necessary.
Discard the bay leaves from the filling mixture.
If you used a non-ovenproof skillet, transfer the filling to a baking dish. If time allows, chill the filling before adding the mashed potatoes.