Bring a large pot of salted water to boil. Carefully cut from the stem of the cabbage and peel off 10 large leaves. Place in boiling water, stir gently. Boil for about 10 minutes. Drain in colander and rinse with cold water. Gently lay leaves out on paper towels to dry. Cut stem from remaining cabbage and discard. Cut cabbage in half and grate into a large bowl, discarding any large pieces.
In a large frying pan over med-high heat, sauté onion and garlic for 5 minutes. Add tomato, remaining cabbage, salt, pepper and red pepper if using. Cook and stir until liquid is gone and vegetables are soft, about 10 min. Remove from heat to cool.
In a large bowl, add ground beef, rice, cooled tomato mixture, egg and bread crumbs. Mix well, adding more bread crumbs if mixture is too moist. It should be firm enough to handle.
Preheat oven to 375. Prepare a 13” x 9” baking dish with cooking spray. Working one at a time, place a cabbage leaf, stem side towards you, on work surface. Form a handful of meat mixture into a small “log”, place in middle of leaf. Fold sides in over meat, then stem side forward to make roll. Place seam side down in baking dish. Repeat with remaining meat mixture and cabbage leaves.
Wisk together soup, water and honey in a small bowl. Pour evenly over cabbage rolls. Cover baking dish tightly with foil. Bake at 375 for 1 hour. Remove foil, bake for another 20 minutes.