create(); $user = User::factory()->create(); $policies = Policy::factory()->count(25)->create(['tenant_id' => $tenant->id]); $policyIds = $policies->pluck('id')->toArray(); /** @var OperationRunService $service */ $service = app(OperationRunService::class); $opRun = $service->ensureRun( tenant: $tenant, type: 'policy.delete', inputs: [ 'scope' => 'subset', 'policy_ids' => $policyIds, ], initiator: $user, ); // Simulate Async dispatch (this logic will be in Filament Action) BulkPolicyDeleteJob::dispatch( tenantId: (int) $tenant->getKey(), userId: (int) $user->getKey(), policyIds: $policyIds, operationRun: $opRun, ); Queue::assertPushed(BulkPolicyDeleteJob::class, function ($job) use ($tenant, $user, $opRun, $policyIds) { return $job->tenantId === (int) $tenant->getKey() && $job->userId === (int) $user->getKey() && $job->operationRun?->getKey() === $opRun->getKey() && $job->policyIds === $policyIds; }); });