'object', 'permissions' => 'object', 'updated_at' => 'timestamp', 'created_at' => 'timestamp', 'deleted_at' => 'timestamp', ]; public function account() { return $this->belongsTo(Account::class); } public function user_pivot() { return $this->hasOne(User::class)->withPivot('permissions', 'settings', 'is_admin', 'is_owner', 'is_locked'); } public function company_pivot() { return $this->hasOne(Company::class)->withPivot('permissions', 'settings', 'is_admin', 'is_owner', 'is_locked'); } public function user() { return $this->hasOne(User::class, 'id', 'user_id'); } public function company() { return $this->hasOne(Company::class, 'id', 'company_id'); } /*todo monitor this function - may fail under certain conditions*/ public function token() { return $this->belongsTo(CompanyToken::class, 'user_id','user_id'); /* return $this->hasOneThrough( CompanyToken::class, CompanyUser::class, 'user_id', // Foreign key on CompanyUser table... 'company_id', // Foreign key on CompanyToken table... 'user_id', // Local key on CompanyToken table... 'company_id' // Local key on CompanyUser table... ); */ } }