'date', 'resign_date' => 'date', 'employment_status' => EmploymentStatus::class, 'employee_status' => EmployeeStatus::class, 'base_salary' => 'integer', ]; } #[Scope] public function active(Builder $query): void { $query->where('employee_status', EmployeeStatus::ACTIVE->value); } #[Scope] public function inactive(Builder $query): void { $query->where('employee_status', EmployeeStatus::INACTIVE->value); } #[Scope] public function resigned(Builder $query): void { $query->where('employee_status', EmployeeStatus::RESIGNED->value); } public function fullTime(Builder $query): void { $query->where('employment_status', EmploymentStatus::FULL_TIME->value); } #[Scope] public function partTime(Builder $query): void { $query->where('employee_status', EmploymentStatus::PART_TIME->value); } #[Scope] public function contract(Builder $query): void { $query->where('employee_status', EmploymentStatus::CONTRACT->value); } #[Scope] public function temporary(Builder $query): void { $query->where('employee_status', EmploymentStatus::TEMPORARY->value); } public function baseSalaryFormatted(): Attribute { return Attribute::make( get: fn (int $value) => number_format($value, 0, ',', '.'), ); } public function profile(): BelongsTo { return $this->belongsTo(UserProfile::class); } }