subDay(); ExportJob::where('created_at', '<', $dayAgo->format('Y-m-d H:i:s')) ->where('status', 'never_started') // TODO also delete others. ->delete(); return true; } /** * @return ExportJob */ public function create() { $exportJob = new ExportJob; $exportJob->user()->associate(Auth::user()); /* * In theory this random string could give db error. */ $exportJob->key = Str::random(12); $exportJob->status = 'export_status_never_started'; $exportJob->save(); return $exportJob; } /** * @param $key * * @return ExportJob|null */ public function findByKey($key) { return Auth::user()->exportJobs()->where('key', $key)->first(); } }