Melt 1 tablespoon of butter in a large skillet over medium heat. Add diced onion and cook for 3–4 minutes until softened.
Add the ground beef and cook, breaking it apart, until browned. Drain any excess fat.
Stir in minced garlic and cook for about 1 minute, until fragrant.
Pour in the uncooked rice, beef broth, Italian seasoning, salt, and pepper. Stir well to combine.
Bring to a boil, then reduce the heat to low. Cover and cook for 18–20 minutes, or until the rice is tender and has absorbed most of the broth.
In a small saucepan, melt the remaining 2 tablespoons of butter over low heat. Stir in the milk, Parmesan, and cheddar cheese. Mix until the sauce is smooth and creamy.
Pour the cheese sauce into the cooked beef and rice mixture. Stir well until evenly coated.
Cook uncovered for another 2–3 minutes to let the flavors blend. Garnish with chopped parsley and serve warm.