Preheat your oven to 375°F (190°C). Peel the potatoes and slice them thinly and evenly to ensure they cook at the same rate when layered in the casserole.
In a large skillet, melt the butter over medium heat. Add the diced onion, minced garlic, and fresh thyme, sautéing until the onion becomes translucent and the garlic is fragrant.
Add the ground beef to the skillet with the sautéed aromatics. Cook, breaking it into crumbles, until well browned and cooked through. Season with salt, black pepper, bouillon powder, oregano, and paprika. Drain any excess fat before proceeding.
Sprinkle the flour over the cooked beef mixture, stirring well to combine. Cook for an additional minute to toast the flour slightly. Gradually pour in the beef broth and milk, stirring constantly until a slightly thickened, gravy-like sauce forms. I like to use milk at room temperature so it incorporates more smoothly into the sauce.
Grease a 9"x13" baking dish with butter or non-stick spray. Arrange half of the thinly sliced potatoes along the bottom of the dish. Spread half of the beef and gravy mixture (from Step 4) evenly over the potatoes. Repeat the layers with the remaining potatoes and beef mixture.
Cover the assembled casserole with foil and bake in the preheated oven for about 45 minutes, or until the potatoes are tender when pierced with a fork. Then, uncover the dish, sprinkle the shredded sharp cheddar cheese evenly on top, and bake for an additional 10–15 minutes until the cheese melts and bubbles. I always use sharp cheddar here for extra flavor.
Remove the casserole from the oven and allow it to cool for a few minutes before serving. Garnish with fresh chopped parsley for a burst of color and freshness.