Preheat the oven to 350 degrees.
Bring a pot of water to a boil, then add pasta; add a generous sprinkling of salt to the pasta.
While the pasta cooks, melt the butter in a skillet or pot large enough to hold the pasta when it’s done.
Add the flour and stir over medium heat until the mixture is lightly toasted; 1-2 minutes.
Add the milk and whisk to remove any lumps and add the salt, pepper, and paprika.
Cook over medium-high heat until the sauce thickens and starts to bubble. About 6 minutes.
Stir in the all of the cream cheese and 3/4 of the gruyere and cheddar. Whisk until smooth and melted. Turn off the heat.
When the pasta is cooked, drain it and stir into the sauce. Sprinkle the last 1/4 of the gruyere and cheddar on top.
Bake 25-30 minutes until browned and bubbly.