lockForUpdate()->findOrFail($instance->id); $cacheKey = $instance->tokenCacheKey(); $instance->update($data); if (array_key_exists('integration_data', $data)) { DB::afterCommit(fn () => Cache::forget($cacheKey)); } return $instance; }); } public function delete(IntegrationInstance $instance): void { DB::transaction(function () use ($instance): void { $instance = IntegrationInstance::query()->lockForUpdate()->findOrFail($instance->id); abort_if($instance->clientIntegrations()->exists() || $instance->websiteTypeIntegrations()->exists(), 409, 'Unlink the instance before deleting it.'); $cacheKey = $instance->tokenCacheKey(); $instance->delete(); DB::afterCommit(fn () => Cache::forget($cacheKey)); }); } }