Heat olive oil in a large skillet or Dutch oven over medium-high heat.
Add the diced onion and ground beef. Cook until the meat is browned and the onions are translucent, about 5-7 minutes. Drain excess grease if necessary.
Stir in minced garlic, Italian seasoning, salt, and black pepper. Cook for 1 minute until fragrant.
Mix in the tomato paste, coating the meat evenly, and cook for 2 minutes.
Pour in the beef broth and scrape up any browned bits from the bottom of the pan. Stir in the dry orzo pasta.
Bring to a gentle boil, then reduce heat to low, cover, and simmer for 10-12 minutes, stirring occasionally to prevent sticking, until the pasta is tender and most liquid is absorbed.
Stir in the heavy cream and fresh baby spinach. Simmer for 2-3 minutes until the spinach is wilted and the sauce thickens.
Remove from heat and stir in the grated parmesan cheese. Serve immediately.