Preheat oven to 375°F (190°C) and grease a 9x13 inch baking dish.
In a large skillet over medium-high heat, brown the ground beef and diced onions until meat is cooked through; drain excess fat.
Stir in minced garlic, salt, and pepper to the beef mixture and cook for 1 minute.
In a separate saucepan, melt butter over medium heat, whisk in flour for 1 minute to create a roux, then slowly whisk in milk until thickened.
Remove sauce from heat and stir in 1.5 cups of shredded cheddar until melted.
Layer half of the sliced potatoes in the baking dish, followed by the beef mixture, then the remaining potatoes.
Pour the cheese sauce evenly over the top layer.
Cover with foil and bake for 30 minutes.
Remove foil, sprinkle with remaining cheese and paprika, and bake for an additional 15 minutes until potatoes are tender and top is bubbly.