There are a lot of unsafe assumptions in Spree around orders only having a single payment.

Spree::Order defines:

```ruby
    def payment
      payments.first
    end
```

This is referenced in a few different places (core/app/views/spree/shared/_order_details.html.erb, core/app/models/spree/order_updater.rb, and possibly more) and can cause all sorts of issues if there are multiple payment records.  That method should be deprecated and references to it removed if it's important for an order to actually have many payments.