Let's try to refactor all this logic back to the model layer.

@seat.user_change(params[:state])

...or something like that.