$input */ public function add(Project $project, array $input): void { /** @var User $user */ $user = User::query()->findOrFail($input['user']); $project->users()->detach($user); $project->users()->attach($user); } /** * @return array> */ public static function rules(Project $project): array { return [ 'user' => [ 'required', Rule::exists('users', 'id'), Rule::unique('user_project', 'user_id')->where(function (Builder $query) use ($project): void { $query->where('project_id', $project->id); }), ], ]; } }