Make the meatballs: In a large bowl, mix ground beef, breadcrumbs, egg, Worcestershire sauce, Dijon mustard, garlic powder, onion powder, salt, and pepper until just combined. Roll into evenly sized meatballs.
- Heat olive oil in a large skillet over medium heat. Sear meatballs until browned on all sides (they don’t need to be fully cooked). Remove and set aside.
- Make the gravy: In the same skillet, melt butter. Add chopped onion and cook until translucent. Add minced garlic and cook for 1 minute.
- Whisk in flour and cook for 1–2 minutes to form a roux. Gradually pour in beef broth while whisking until smooth.
- Stir in Worcestershire sauce and Dijon mustard. Season with salt and pepper. Return meatballs to the skillet, cover, and simmer for 10–15 minutes until meatballs are cooked through and gravy has thickened.
- Make the mashed potatoes: Add potatoes and garlic cloves to a large pot, cover with cold water, and add a pinch of salt. Bring to a boil and cook until fork-tender, about 15–20 minutes.
- Drain potatoes and return to pot. Add butter, cream or milk, herbs, salt, and pepper. Mash until smooth and creamy.
- Serve meatballs and gravy over garlic herb mashed potatoes. Garnish with extra herbs if desired.