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, ]); } public static function rules(User $user, Server $server): array { return [ 'key_id' => [ 'required', Rule::exists('ssh_keys', 'id')->where('user_id', $user->id), Rule::unique('server_ssh_keys', 'ssh_key_id')->where('server_id', $server->id), ], ]; } }