addTokens(); while ($count === self::BATCH_SIZE) { CronHelper::enforceExecutionLimit($this->timer); $count = $this->addTokens(); }; if ($count > 0) { self::schedule(); } return true; } private function addTokens() { $instances = Subscriber::whereNull('link_token')->limit(self::BATCH_SIZE)->findMany(); foreach ($instances as $instance) { $instance->set('link_token', Subscriber::generateToken($instance->email)); $instance->save(); } return count($instances); } static function getNextRunDate() { $wp = new WPFunctions(); return Carbon::createFromTimestamp($wp->currentTime('timestamp')); } }