In a large skillet or saucepan, brown the ground beef over medium-high heat until no longer pink. Break up the meat with a spatula as it cooks. Drain any excess grease from the skillet.
Add the chopped onion and minced garlic to the beef, and cook until the onions are translucent and fragrant, about 3-5 minutes.
Stir in the tomato sauce, diced tomatoes, beef broth, Italian seasoning, salt, and pepper. Bring the mixture to a simmer.
Stir in the uncooked elbow macaroni, ensuring it's submerged in the liquid. Cover and simmer on low heat for about 10-12 minutes, stirring occasionally.
When the macaroni is close to being done but still has a slight bite to it, reduce the heat to low and stir in the ½ cup of heavy cream. Continue to cook for an additional 2-4 minutes, or until the pasta is fully cooked and the sauce has thickened to your liking. Be careful not to let the mixture come to a boil after adding the cream to prevent it from curdling.
Remove from the heat and stir in half of the cheddar and mozzarella cheeses until melted.
Sprinkle the remaining cheese on top of the Beefaroni. Cover the skillet for a few minutes to allow the cheese to melt from the residual heat.
Garnish with fresh chopped parsley before serving.