*/ use HasFactory, Notifiable, HasRoles, HasApiTokens; /** * The attributes that are mass assignable. * * @var list */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for serialization. * * @var list */ protected $hidden = [ 'password', 'remember_token', ]; /** * Get the attributes that should be cast. * * @return array */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } // --- Shift Relationships --- public function shifts(): BelongsToMany { return $this->belongsToMany(Shift::class, 'shift_staff') ->withPivot('assigned_by') ->withTimestamps(); } public function shiftAttendances(): HasMany { return $this->hasMany(ShiftAttendance::class); } public function createdShifts(): HasMany { return $this->hasMany(Shift::class, 'created_by'); } }