Preheat oven to 375°F. Grease a 9×13-inch baking dish with cooking spray or butter.
In a large skillet over medium-high heat, cook the ground beef and diced onion together, breaking the beef up as you go, until browned and cooked through, about 8 minutes. Drain off excess fat.
Add the minced garlic, salt, black pepper, garlic powder, Italian seasoning, and Worcestershire sauce. Stir and cook for 1 more minute. Remove from heat.
In a medium bowl, stir together the cream of mushroom soup, sour cream, and beef broth until smooth.
Peel and slice the potatoes into ⅛-inch rounds. Pat dry with paper towels.
Arrange half of the potato slices in a single overlapping layer across the bottom of the baking dish.
Spread all of the seasoned beef mixture evenly over the potatoes.
Pour half of the cream sauce over the beef. Sprinkle 1 cup of mozzarella over the sauce.
Arrange the remaining potatoes in an overlapping layer on top. Pour the remaining cream sauce over the potatoes. Dot the top with the butter pieces.
Cover tightly with aluminum foil and bake for 60 minutes.
Remove foil. Sprinkle the remaining 1 cup of mozzarella and all of the Parmesan over the top.
Return to the oven uncovered and bake for 20 to 25 minutes, until the cheese is golden brown and the edges are bubbling.
Remove from the oven and let rest for 10 minutes before serving. Garnish with fresh parsley if desired.