$backup->id, 'name' => Str::of($backup->database->name)->slug().'-'.now()->format('YmdHis'), 'status' => BackupFileStatus::CREATING, ]); $file->save(); dispatch(function () use ($file, $backup) { /** @var Database $databaseHandler */ $databaseHandler = $file->backup->server->database()->handler(); $databaseHandler->runBackup($file); $file->status = BackupFileStatus::CREATED; $file->save(); if ($backup->status !== BackupStatus::RUNNING) { $backup->status = BackupStatus::RUNNING; $backup->save(); } })->catch(function () use ($file, $backup) { $backup->status = BackupStatus::FAILED; $backup->save(); $file->status = BackupFileStatus::FAILED; $file->save(); })->onConnection('ssh'); return $file; } }