In a large pot of boiling water, cook pasta al dente according to the package directions.
Heat a 12-inch skillet on medium-high heat. Add the ground beef, and onions and cook until browned. Drain fat if needed and add in the garlic and cook another 30 seconds. Remove the beef and set aside.
Add the butter to the skillet and melt, add in the flour and whisk for a minute.
Gradually whisk in beef stock and tomato sauce. Bring to a boil, then reduce heat and simmer for 5-6 minutes. Stirring occasionally.
Whisk in Italian seasoning, paprika, mustard powder and red pepper flakes.
Whisk in heavy cream and add in cooked pasta and ground beef. Season with salt and pepper to taste.
Turn off heat and sprinkle with shredded cheese and let melt. (If you put a lid or cover on the skillet it will melt much faster.)
Sprinkle some fresh chopped parsley if desired. Serve!