<?php namespace App\Jobs\MediaPipeline; use App\Media; use App\User; use Cache; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use App\Services\StatusService; class MediaSyncLicensePipeline implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $userId; protected $licenseId; public function __construct($userId, $licenseId) { $this->userId = $userId; $this->licenseId = $licenseId; } public function handle() { $licenseId = $this->licenseId; if(!$licenseId || !$this->userId) { return 1; } Media::whereUserId($this->userId) ->chunk(100, function($medias) use($licenseId) { foreach($medias as $media) { $media->license = $licenseId; $media->save(); Cache::forget('status:transformer:media:attachments:'. $media->status_id); StatusService::del($media->status_id); } }); } }