pluck('id')->toArray(); // developer $developer = User::create([ 'email' => 'project.pangestuyoga@gmail.com', 'username' => 'pangestu', 'password' => Hash::make(config('myconfig.password_default')), 'status' => UserStatus::ACTIVE, 'email_verified_at' => now(), ]); Employee::create([ 'user_id' => $developer->id, 'code' => '0001', 'full_name' => 'Yoga Pangestu', 'phone_number' => '082121495806', 'gender' => Gender::MALE, 'address' => 'Kp. Bakan Sampeu', 'birthdate' => '2005-03-13', 'hire_date' => now(), 'status' => EmploymentStatus::PERMANENT, ]); ReferralCode::create([ 'user_id' => $developer->id, 'code' => generateReferralCode('pangestu', 1), ]); $developer->assignRole(UserRole::Developer); $developer->outlets()->attach($outlet_ids); // owner $owner = User::create([ 'email' => 'mulyadi@gmail.com', 'username' => 'mulyadi', 'password' => Hash::make(config('myconfig.password_default')), 'status' => UserStatus::ACTIVE, 'email_verified_at' => now(), ]); Employee::create([ 'user_id' => $owner->id, 'code' => '0002', 'full_name' => 'Yadi Mulyadi', 'phone_number' => '082121495806', 'gender' => Gender::MALE, 'address' => 'Kp. Bakan Sampeu', 'birthdate' => '2000-01-01', 'hire_date' => now(), 'status' => EmploymentStatus::PERMANENT, ]); ReferralCode::create([ 'user_id' => $owner->id, 'code' => generateReferralCode('mulyadi', 2), ]); $owner->assignRole(UserRole::Owner); $owner->outlets()->attach($outlet_ids); // leader $leader = User::create([ 'email' => 'leader@gmail.com', 'username' => 'leader', 'password' => Hash::make(config('myconfig.password_default')), 'status' => UserStatus::ACTIVE, 'email_verified_at' => now(), ]); Employee::create([ 'user_id' => $leader->id, 'code' => '0003', 'full_name' => 'Leader User', 'phone_number' => '082121495801', 'gender' => Gender::MALE, 'address' => 'Leader Address', 'birthdate' => '2000-01-01', 'hire_date' => now(), 'status' => EmploymentStatus::PERMANENT, ]); ReferralCode::create([ 'user_id' => $leader->id, 'code' => generateReferralCode('leader', 3), ]); $leader->assignRole(UserRole::Leader); $leader->outlets()->attach($outlet_ids); // admin per outlet $outlets = Outlet::all(); $userCounter = 4; foreach ($outlets as $outlet) { $adminUsername = 'admin_'.preg_replace('/[^a-zA-Z0-9]/', '', strtolower($outlet->name)); $adminEmail = $adminUsername.'@gmail.com'; $admin = User::create([ 'email' => $adminEmail, 'username' => $adminUsername, 'password' => Hash::make(config('myconfig.password_default')), 'status' => UserStatus::ACTIVE, 'email_verified_at' => now(), ]); Employee::create([ 'user_id' => $admin->id, 'code' => str_pad($userCounter, 4, '0', STR_PAD_LEFT), 'full_name' => 'Admin '.$outlet->name, 'phone_number' => '0821214958'.str_pad($userCounter, 2, '0', STR_PAD_LEFT), 'gender' => Gender::MALE, 'address' => 'Admin Address', 'birthdate' => '2000-01-01', 'hire_date' => now(), 'status' => EmploymentStatus::PERMANENT, ]); ReferralCode::create([ 'user_id' => $admin->id, 'code' => generateReferralCode($adminUsername, $userCounter), ]); $admin->assignRole(UserRole::Admin); $admin->outlets()->attach($outlet->id); $userCounter++; } // partner $partner = User::create([ 'email' => 'partner@gmail.com', 'username' => 'partner', 'password' => Hash::make(config('myconfig.password_default')), 'status' => UserStatus::ACTIVE, 'email_verified_at' => now(), ]); ReferralCode::create([ 'user_id' => $partner->id, 'code' => generateReferralCode('partner', $userCounter), ]); $partner->assignRole(UserRole::Partner); $partner->outlets()->attach($outlet_ids); } }