listsMilestones = $listsMilestones; } public function execute($project) { $first = true; foreach($this->listsMilestones->handler(['project_type' => $project->type_id, 'order_by' => json_decode(json_encode(['column' => 'order', 'DESC' => false]))]) as $milestone){ $newMilestone = ProjectMilestone::create(['project_id' => $project->id, 'name' => $milestone->name, 'order' => $milestone->order, 'complete' => false]); foreach($milestone->tasks as $task){ /** @var Task $newTask */ $newTask = Task::create(['milestone_id' => $newMilestone->id, 'type_id' => $task->type_id, 'title' => $task->title, 'description' => $task->description, 'status' => $first ? 7:6, 'active' => $first]); $first = false; foreach($task->departments as $department) { $newTask->departments()->attach($department->id); } foreach($task->users as $user){ $newTask->users()->attach($user->id); } } } } }