orderBy('id')->first(); $assignee = User::query()->orderBy('id')->skip(1)->first() ?? $author; Project::query() ->orderBy('id') ->get() ->each(function (Project $project) use ($assignee, $author, $createProjectTicket, $initializeProjectTicketMetadata): void { $initializeProjectTicketMetadata->handle($project); $priority = $project->ticketPriorities()->first(); if ($priority === null) { $priority = TicketPriority::factory()->for($project)->create([ 'name' => 'Medium', 'position' => 1, ]); } $defaultType = $project->ticketTypes()->firstOrFail(); $defaultStatus = $project->ticketStatuses() ->whereNull('board_column_id') ->firstOrFail(); $createProjectTicket->handle($project, [ 'acceptance_criteria' => 'The seeded ticket should be visible in the backlog list.', 'assignee_user_id' => $assignee?->id, 'description' => 'Seeded backlog item for demonstrating the first ticket workflow.', 'story_points' => 3, 'ticket_priority_id' => $priority->id, 'ticket_status_id' => $defaultStatus->id, 'ticket_type_id' => $defaultType->id, 'title' => 'Seed backlog item', ], $author); $createProjectTicket->handle($project, [ 'acceptance_criteria' => 'Duplicate titles must be allowed for project-local ticket keys.', 'assignee_user_id' => null, 'description' => 'Second seeded backlog item using the same title on purpose.', 'story_points' => 5, 'ticket_priority_id' => $priority->id, 'ticket_status_id' => $defaultStatus->id, 'ticket_type_id' => $defaultType->id, 'title' => 'Seed backlog item', ], $author); }); } }