Preheat oven to 375°F and grease a 9x13-inch baking dish.
Mix ground beef, onion, garlic, breadcrumbs, eggs, ketchup, Worcestershire sauce, and seasonings in a large bowl.
Press mixture into baking dish and bake for 20 minutes.
Boil potatoes until tender, then mash with butter, milk, and sour cream.
Drain grease from meat layer and spread mashed potatoes evenly on top.
Add cheddar cheese and bacon over potatoes.
Bake another 20–25 minutes until cheese melts and bubbles.
Let rest for 5–10 minutes, top with green onions, and serve.