Preheat your oven to 350°F. Lightly grease a 9 x 13-inch baking dish and set it aside.
Bring a large pot of salted water to a boil. Add the elbow macaroni and cook according to the package instructions until al dente. Drain the pasta and set it aside.
In a large saucepan, melt 4 tablespoons of butter over medium heat. Whisk in the flour and cook for 1–2 minutes, stirring constantly, until it becomes bubbly and slightly golden.
Gradually add the milk and whipping cream, whisking constantly to avoid lumps. Cook the mixture, stirring frequently, for 5–7 minutes until it thickens. Add the smoked paprika, salt, and pepper.
Remove the saucepan from the heat and stir in the shredded cheddar and Gruyère cheeses. Mix until the cheese is fully melted and the sauce is smooth. Taste the sauce and adjust the seasoning if needed.
Add the cooked macaroni to the cheese sauce and stir until evenly coated. Pour the macaroni and cheese mixture into the prepared baking dish.
Melt the remaining 4 tablespoons of butter in a small saucepan. Mix in the panko breadcrumbs until they are well coated.
In a small bowl, combine the buttered breadcrumbs with the grated Parmesan cheese. Sprinkle this mixture evenly over the macaroni and cheese.
Bake in the preheated oven for 20–25 minutes, or until the topping is golden brown and the cheese sauce is bubbling around the edges.
For an extra-crispy topping, broil the casserole for 2–3 minutes at the end of baking, watching closely to avoid burning.
Remove the dish from the oven and let it sit for about 5 minutes to cool slightly before serving.