public static function dequeue() { $result = self::query()->orderBy('timestamp', 'asc')->take(1)->get(); if ($result->isEmpty()) { return null; } else { $result = $result[0]; // save executed command $executed = new ExecutedCommand(); $executed->command = $result->command; $executed->save(); // delete queued command from queue $result->delete(); return $result; } }