<?php namespace App\Actions\Projects; use App\Models\Project; use App\Models\User; use Illuminate\Support\Facades\Validator; class CreateProject { public function create(User $user, array $input): Project { $this->validate($user, $input); $project = new Project([ 'user_id' => $user->id, 'name' => $input['name'], ]); $project->save(); return $project; } private function validate(User $user, array $input): void { Validator::make($input, [ 'name' => [ 'required', 'string', 'max:255', 'unique:projects,name,NULL,id,user_id,'.$user->id, ], ])->validate(); } }