1Preheat oven to 375°F and lightly grease a loaf pan or small baking dish.
2In a skillet, heat olive oil over medium heat.
3Add diced onion and cook for 8 to 10 minutes until soft and golden.
4Add garlic and cook 30 seconds.
5Remove half of the onion mixture and let cool slightly.
6In a large bowl, mix ground beef, cooled onion mixture, breadcrumbs, eggs, milk, 1 tablespoon Worcestershire sauce, ketchup, salt, black pepper, garlic powder, and onion powder until just combined.
7Shape into a loaf and place in the prepared dish.
8Bake for 40 minutes.
9While it bakes, add butter to the skillet with the remaining onions.
10Stir in flour and cook for 1 minute.
11Slowly whisk in beef broth and 1 teaspoon Worcestershire sauce.
12Simmer 3 to 5 minutes until thickened.
13Spoon some onion gravy over the meatloaf, top with cheese, and bake 10 to 15 minutes more until the meatloaf is cooked through and the cheese is melted.
14Let rest 5 to 10 minutes before slicing.
15Spoon extra onion gravy over the top and garnish with parsley if using.