In a large skillet, heat the olive oil over medium heat. Add the diced onion and sauté until translucent, about 3-4 minutes. Add the minced garlic and cook for an additional minute until fragrant.
Add the ground beef to the skillet. Cook until browned, breaking it apart with a spoon, about 5-7 minutes. Drain excess fat if necessary.
Stir in the diced tomatoes (with juice), beef broth, and Italian seasoning. Bring the mixture to a simmer.
Add the uncooked penne pasta to the skillet. Stir well to combine, cover, and cook for about 12-15 minutes, or until the pasta is tender, stirring occasionally.
Once the pasta is cooked, reduce the heat to low and stir in the heavy cream. Season with salt and pepper to taste. Allow it to heat through for about 2-3 minutes.
Sprinkle the shredded mozzarella cheese over the top and cover the skillet until the cheese melts, about 2-3 minutes.
Remove from heat and garnish with chopped fresh parsley before serving.