$server->id, 'type' => 'php', 'type_data' => [ 'extensions' => [], 'settings' => config('core.php_settings'), ], 'name' => 'php', 'version' => $input['version'], 'status' => ServiceStatus::INSTALLING, 'is_default' => false, ]); $php->save(); dispatch(function () use ($php) { $php->handler()->install(); $php->status = ServiceStatus::READY; $php->save(); })->catch(function () use ($php) { $php->delete(); })->onConnection('ssh'); } public static function rules(Server $server): array { return [ 'version' => [ 'required', Rule::in(config('core.php_versions')), Rule::notIn(array_merge($server->installedPHPVersions(), [PHP::NONE])), ], ]; } }