Collect each person's deposit and balance upfront into one place held by whoever's booking. Cruise lines want a deposit now and the rest by a deadline, so a visible record of who's paid what keeps the whole group on schedule.
A group cruise is two payments, not one: a deposit to hold the cabins, then a final balance due weeks before you sail. The person who booked it is stuck tracking who paid the deposit, who still owes it, and who's about to blow the final-payment deadline for the whole group, all in a group chat.
The cabin fare is only part of it. Groups also buy shore excursions, a dinner package, drink plans, all of which come up after the cabins are booked. Instead of one person fronting the excursion tickets, collect a little extra into the table so those extras come out of shared money too.
Whoever books a group excursion requests that amount from the table, the booker approves it, and everyone sees it come out. Nobody keeps a side tally, and the leftover at the end is on the record to send back. (A cruise that starts with a long drive to the port? Pair this with splitting road trip costs.)
The booker holds the money the way one person always does, only now everyone sees every dollar. It goes through Stripe to the booker; TableCash never holds it and is just the record.