Heat 2 tablespoons of olive oil in a large skillet over medium high heat. Add the ground beef and cook until browned, breaking it up as it cooks. Transfer to a bowl and set aside.
Bring a pot of salted water to a boil. Cook the pasta until tender. Reserve 1 cup of the pasta water, then drain the pasta and set aside.
In the same skillet, melt the butter. Add the onion and cook until soft and translucent.
Season with salt, black pepper, garlic powder, thyme, oregano, and smoked paprika. Stir until fragrant.
Sprinkle in the flour and cook for 1 to 2 minutes, stirring constantly.
Slowly pour in the reserved pasta water, stirring until smooth. Add the tomato sauce and simmer for a few minutes.
Stir in the cream, then return the cooked ground beef and add the cheese. Simmer gently until the cheese is melted and the sauce is smooth.
Add the cooked pasta and toss until evenly coated. Finish with fresh parsley and serve warm.