validate($user, $input); /** @var SshKey $sshKey */ $sshKey = SshKey::findOrFail($input['key_id']); $server->sshKeys()->attach($sshKey, [ 'status' => SshKeyStatus::ADDING, ]); $server->os()->deploySSHKey($sshKey->public_key); $sshKey->servers()->updateExistingPivot($server->id, [ 'status' => SshKeyStatus::ADDED, ]); } private function validate(User $user, array $input): void { Validator::make($input, [ 'key_id' => [ 'required', Rule::exists('ssh_keys', 'id')->where('user_id', $user->id), ], ])->validate(); } }