hasMany(LeaveRequest::class, 'staff_member_id'); } public function dependents() { return $this->hasMany(StaffDependent::class, 'staff_id'); } public function dailyReports() { return $this->hasMany(DailyReport::class, 'user_id'); } public function department(){ return $this->hasOne('App\Models\Department', 'id', 'department_id'); } // public function designation(){ // return $this->hasOne('App\Models\Department', 'id', 'department_id'); // } public function roles(): BelongsToMany { // Parameter order: Related Model, Pivot Table Name, Foreign Key on Pivot, Related Key on Pivot return $this->belongsToMany(ErpSystemRole::class, 'user_roles', 'staff_member_id', 'system_role_id'); } public function hasRole(string $role): bool { return $this->roles()->where('name', $role)->exists(); } // 4. Cast dates correctly protected $casts = [ // 'dob' => 'date', 'hire_date' => 'datetime', 'password' => 'hashed', // Laravel 10+ password casting ]; }