Hi @xibel
why not both? Let me explain
In your User you can have a pairs relationship and in Pair a user relationship, that is useful for showing some information, however as you say sometimes you will need to use something like $trade->user or $trade->pair to do some inspection.
I had a similar issue once when my pivot table over time had more pivot columns and it became its own concept, however I left the initial relationships and it is consistent.
When you use pivot columns sometime you will end asking if a $user->pair->pivot exists or throw an error instead of null also if you keep only the pivot approach in order to get some specifics like Trade 3 for user 1 you will need to use more complex methods like
public function getUserWhereHasBlabla($whatever)
$user->whereHas('pairs', function($query)) use($whatever) {
$query->where('x', $whatever)
}->first();
});
Is it possible to use some methods like that to give you the access however in the case like you mention that you need some kind of inspection it is useful and quickly to take advantage of the id key of your "pivot" table.