Preheat your oven to 375°F (190°C). Lightly grease a 9x13-inch baking dish with cooking spray or olive oil and set aside.
Heat olive oil in a large skillet over medium heat. Add the ground beef and cook for 5-7 minutes, breaking it apart with a wooden spoon, until browned and cooked through. Drain excess fat, leaving about 1 tablespoon in the pan.
Add the diced onion to the skillet with the beef and cook for 3-4 minutes until softened and translucent. Stir in the minced garlic and cook for 1 minute until fragrant. Season with salt and pepper.
Spread the cooked beef mixture evenly across the bottom of your prepared baking dish, creating a solid base layer.
Arrange the thinly sliced potatoes over the beef in overlapping layers. Season each layer with salt, pepper, Italian seasoning, and paprika as you build.
Sprinkle the shredded cheddar and grated Parmesan cheese evenly over the potato layer.
Pour the beef broth around the edges of the casserole to create steam for cooking the potatoes. If using milk for extra creaminess, drizzle it over the top.
Cover the baking dish tightly with aluminum foil and bake for 30 minutes.
Remove the foil and continue baking uncovered for an additional 15-20 minutes, or until the potatoes are fork-tender and the cheese is golden and bubbling.
Let the casserole rest for 5 minutes before serving. Garnish with fresh parsley if desired and serve hot.