addDays($i); for ($j = 0; $j <= (($endTime->diffInMinutes($startTime)) / 30); $j++) { $currentTime = $startTime->copy()->addMinutes(30 * $j); $currentEndTime = $startTime->copy()->addMinutes(30 * $j + 30); DB::table('appointments')->insert([ 'date' => $date, 'start_time' => $currentTime->format("H:i:s"), 'end_time' => $currentEndTime->format("H:i:s"), ]); } } } }