Trim off the root end of the napa cabbage. Lay 2 slices of beef on one cabbage leaf, then place another leaf on top, followed by more beef. Continue alternating until everything is stacked.
Cut into large sections and arrange them upright in a pot to create the “thousand-layer” look. Place shiitake mushrooms on top.
Heat oil in a pan over medium heat. Add garlic, ginger, and onion. Stir-fry until fragrant. Add tomato paste and diced tomatoes, then season with soy sauce, oyster sauce, sugar, salt, and chicken bouillon. Stir well, pour in water, and bring to a boil.
Carefully pour the hot tomato broth over the layered cabbage and beef. Bring to a boil, cover, and simmer on low heat for 10–15 minutes, until the cabbage is tender and the beef is cooked through.
Taste and adjust salt if needed. Sprinkle chopped celery and green onion on top. Serve hot with steamed rice.