call(RoleSeeder::class); // Create admin user — email matches LDAP mail attribute $admin = User::factory()->create([ 'name' => 'Administrator', 'email' => 'admin@travel.local', 'username' => 'admin', 'password' => Hash::make('password'), ]); $admin->assignRole('administrator'); // Create a travel approver — email matches LDAP mail attribute $approver = User::factory()->create([ 'name' => 'Travel Approver', 'email' => 'approver@travel.local', 'username' => 'approver', 'password' => Hash::make('password'), ]); $approver->assignRole('travel_approver'); // Create a staff user — email matches LDAP mail attribute $staff = User::factory()->create([ 'name' => 'Staff Member', 'email' => 'staff@travel.local', 'username' => 'staff', 'password' => Hash::make('password'), ]); $staff->assignRole('staff'); // Create default approval workflow with 2 steps $workflow = ApprovalWorkflow::create([ 'name' => 'Standard Travel Approval', 'description' => 'Default two-step travel approval workflow', 'is_active' => true, ]); ApprovalStep::create([ 'workflow_id' => $workflow->id, 'order' => 1, 'name' => 'Travel Approver Review', 'role' => 'travel_approver', ]); ApprovalStep::create([ 'workflow_id' => $workflow->id, 'order' => 2, 'name' => 'Administrator Final Approval', 'role' => 'administrator', ]); // Create sample travel requests for staff TravelRequest::factory(3)->create([ 'user_id' => $staff->id, ]); } }