gate->allows($user)) { return null; } $total = Transaction::query() ->where('user_id', $user->id) ->pendingAiCategorization() ->count(); if ($total === 0) { return null; } $jobId = (string) Str::uuid(); Cache::put( CategorizeUncategorizedTransactionsJob::cacheKeyForJobId($user->id, $jobId), ['status' => 'pending', 'processed' => 0, 'total' => $total, 'applied' => 0], now()->addHour(), ); CategorizeUncategorizedTransactionsJob::dispatch($user, $jobId); return ['job_id' => $jobId, 'total' => $total]; } }