$this->faker->name(), 'code' => Employee::generateEmployeeCode(), 'phone_number' => $this->faker->randomElement([ $this->faker->numerify('0812 #### ###'), $this->faker->numerify('0812 #### ####'), $this->faker->numerify('0812 #### #####'), ]), 'base_salary' => $this->faker->randomNumber(6), 'address' => $this->faker->address(), 'birthdate' => $this->faker->dateTimeBetween('-60 years', '-18 years')->format('Y-m-d'), 'hire_date' => $this->faker->date(), 'resign_date' => $this->faker->optional()->date(), 'gender' => $this->faker->randomElement(Gender::cases()), 'status' => $this->faker->randomElement(EmploymentStatus::cases()), ]; } public function male(): Factory { return $this->state(fn () => ['gender' => Gender::MALE]); } public function female(): Factory { return $this->state(fn () => ['gender' => Gender::FEMALE]); } public function permanent(): Factory { return $this->state(fn () => ['status' => EmploymentStatus::PERMANENT]); } public function contract(): Factory { return $this->state(fn () => ['status' => EmploymentStatus::CONTRACT]); } public function intern(): Factory { return $this->state(fn () => ['status' => EmploymentStatus::INTERN]); } }