public function addBanners($limit = 2000) { $clients = User::whereType('client')->get(); $twitchers = User::whereType('twitcher')->get(); $bannerTypes = $this->data['bannerTypes']; $faker = $this->faker; $i = 0; foreach ($clients as $c) { try { $bannerCounts = rand(0, 4); if ($i > $limit) { //continue; } for ($i = 0; $i < $bannerCounts; $i++) { $bannerType = $bannerTypes->random(); $twitcher = $twitchers->random(); if (BannerMapper::twitcherFree($twitcher, $bannerType->id)) { $limit = rand(0, $c->balance); if ($limit > 0) { $requiredSizes = explode('*', $bannerType->title); $w = $requiredSizes[0]; $h = $requiredSizes[1]; $file = $faker->imageUrl($w, $h); $banner = BannerMapper::addForTwitcher($twitcher, $c, $bannerType, $file, $limit); NotificationMapper::bannerAdd($banner); LogMapper::log('banner_add', $banner->id); $accept = rand(0, 10); $i++; if ($accept != 0) { BannerMapper::acceptBanner($banner); } else { BannerMapper::declineBanner($banner); } } } } } catch (\Exception $e) { dd($e->getTraceAsString()); } } }