Place a large skillet or pot over medium-high heat on the stove. Once hot, add ground beef.
Use a spatula to break the beef up as it cooks. For best flavor, allow it to cook in a large chunk until well-browned and crispy on one side, then break it up.
Cook the ground beef until browned all of the way through. Drain excess grease or use a paper towel to carefully soak it up.
Add chopped onions and grated carrot. Season with garlic powder, then let the mixture cook down for about 3 minutes.
Mix in chopped bell pepper and cook for an additional 3 minutes or so.
Season with black pepper, salt, sugar, and paprika. Stir to combine completely.
Pour in tomato sauce and diced tomatoes with juices. Let the mixture simmer for 10 minutes.
After simmering, add in cooked rice if desired, and stir well. Set the mixture aside in a bowl.
Preheat your oven to 350°F. Prepare an 8 by 11-inch casserole dish by spraying it lightly with cooking oil or greasing the inside with oil or butter.
In the same pan you used for the ground beef mixture, add olive oil, chopped cabbage, and water. Let the water simmer until the cabbage starts to soften and the water evaporates, about 10 minutes.
Add half of the cabbage to the casserole dish, then layer with half of the beef and rice mix.
Add the remaining half of the cabbage over the top, then the remaining beef mixture.
Top with shredded mozzarella cheese if desired, then cover with foil. Bake for 20 minutes covered. After 20 minutes, carefully remove the foil and bake for an additional 20 minutes.
Remove the foil, serve with a dollop of sour cream if desired, and enjoy!