protected function chunkTimeslots(Vacancy $vacancy, $step = 30)
 {
     $times = [];
     $startTime = $vacancy->start_at->timezone($vacancy->business->timezone)->toTimeString();
     $startKey = date('Y-m-d H:i', strtotime("{$vacancy->date} {$startTime}")) . ' ' . $vacancy->business->timezone;
     $finishTime = $vacancy->finish_at->timezone($vacancy->business->timezone)->toTimeString();
     $endKey = date('Y-m-d H:i', strtotime("{$vacancy->date} {$finishTime}")) . ' ' . $vacancy->business->timezone;
     $fromTime = Carbon::parse($startKey);
     $toTime = $fromTime->copy()->addMinutes($step);
     $limit = Carbon::parse($endKey);
     while ($fromTime <= $limit) {
         $key = $fromTime->timezone($vacancy->business->timezone)->format('H:i');
         $capacity = $vacancy->getAvailableCapacityBetween($fromTime, $toTime);
         if ($capacity > 0) {
             $times[$key] = $capacity;
         }
         $toTime->addMinutes($step);
         $fromTime->addMinutes($step);
     }
     return $times;
 }