Now I have a Users table, a Stores table, and a Store Members table. In stores I add foreign column user_id this is for owner and store members, it is related to store members, this table has only two columns user_id and store_id now I want to handle the relationships between them in laravel model (1) // Relationship to stores owned by the user public function ownedStores() { return $this->hasMany(Store::class, 'user_id'); } // Relationship to stores where the user is a member public function storeMemberships() { return $this->hasMany(StoreMember::class); } // Get all stores the user is associated with (both owned and as a member) public function stores() { return $this->belongsToMany(Store::class, 'store_members', 'user_id', 'store_id'); } (2) // Relationship to the store owner public function owner() { return $this->belongsTo(User::class, 'user_id'); } // Relationship to store members public function members() { return $this->belongsToMany(User::class, 'store_members', 'store_id', 'user_id'); } (3) // Relationship to the user public function user() { return $this->belongsTo(User::class, 'user_id'); } // Relationship to the store public function store() { return $this->belongsTo(Store::class, 'store_id'); }