directionStudyService = new DirectionStudyService(); } /** * Execute the job. */ public function handle(): void { $naprs = []; $naprsUuid = $this->directionStudyService->getAllNaprsUuid(); foreach ($naprsUuid as $uuid) { array_push($naprs, $this->directionStudyService->getNapr($uuid)); } foreach ($naprs as $napr) { $slug = $this->generateUniqueSlug($napr->name_napr, DirectionStudy::class, LevelEducational::from($napr->lvl_edu)); DirectionStudy::updateOrCreate( ['uuid' => $napr->uuid], [ 'name' => $napr->name_napr, 'slug' => $slug, 'code' => $napr->kod_napr, 'lvl_edu' => $napr->lvl_edu, ] ); }; } private function generateUniqueSlug($name, $model, $levelEducational) { $slug = Str::slug($name); $originalSlug = $slug; $slug = $originalSlug . '-' . Str::lower($levelEducational->name); $count = 1; while ($model::where('slug', $slug)->exists()) { $slug = $originalSlug . '-' . $count; $count++; } return $slug; } }