join('time_intervals as ti2', static function ($join) { $join->on('ti2.start_at', '=', 'ti1.start_at'); $join->on('ti2.end_at', '=', 'ti1.end_at'); $join->on('ti2.user_id', '=', 'ti1.user_id'); $join->on('ti2.id', '>', 'ti1.id'); }) ->whereNull('ti2.deleted_at') ->pluck('ti2.id') ->unique(); TimeInterval::destroy($interval_ids->toArray()); $count = $interval_ids->count(); $this->info("Removed $count intervals."); } }