The "seat" object though is not connected to knowing "who" is in that seat, only that it is full.
As in "if seat.isoccupied()"
At no time should the passenger object be visible to perform a new booking. I see where you might need it if you are changing a reservation, but again this shouldn't in any way be linked to the passenger manifest.