ErrorException {#503
  #message: "file_put_contents(D:\xampp\htdocs\ia-prod-frontend\storage\framework/cache/data/ee/d9/eed972aa1ec201a02e006df48bf2701d7d236c6d): Failed to open stream: Permission denied"
  #code: 0
  #file: "D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php"
  #line: 187
  #severity: E_WARNING
  trace: {
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php:187 {
      Illuminate\Foundation\Bootstrap\HandleExceptions->handleError($level, $message, $file = '', $line = 0, $context = []) …
      › {    return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);}
    }
    Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() {}
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php:187 {
      Illuminate\Filesystem\Filesystem->put($path, $contents, $lock = false) …
      › {    return file_put_contents($path, $contents, $lock ? LOCK_EX : 0);}
      arguments: {
        $filename: "D:\xampp\htdocs\ia-prod-frontend\storage\framework/cache/data/ee/d9/eed972aa1ec201a02e006df48bf2701d7d236c6d"
        $data: "1784719112a:4:{s:6:"status";s:7:"success";s:4:"code";i:200;s:7:"message";s:2:"OK";s:4:"data";a:2:{s:5:"items";a:9:{i:0;a:9:{s:2:"id";i:134;s:4:"slug";s:43:"medical-device-industrial-ssd-plp-fixed-bom";s:11:"tab_display";s:11:"Application";s:5:"title";s:49:"How to Choose Industrial SSD for Medical Devices?";s:8:"subtitle";s:49:"How to Choose Industrial SSD for Medical Devices?";s:11:"cover_image";s:104:"/storage/edms/醫療設備如何選擇工業級_ssdhealthcare_storage_與_plp_ssd_完整解析拷貝.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:393:"Medical devices are rapidly becoming more digital. From medical imaging systems, patient monitoring devices, endoscopy systems, and automated dispensing cabinets to healthcare edge gateways, an increasing number of healthcare applications must continuously record medical images, sensor data, operation logs, alarm events, and system status while supporting diagnostic and treatment workflows.";s:14:"published_date";s:10:"07.14.2026";}i:1;a:9:{s:2:"id";i:130;s:4:"slug";s:19:"what-is-an-nvme-ssd";s:11:"tab_display";s:11:"Application";s:5:"title";s:20:"What Is an NVMe SSD?";s:8:"subtitle";s:20:"What Is an NVMe SSD?";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260615_3_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:158:"Learn what an NVMe SSD is, how NVMe differs from SATA SSDs, and why NVMe storage is ideal for automation, industrial systems, and high-frequency data logging.";s:14:"published_date";s:10:"06.15.2026";}i:2;a:9:{s:2:"id";i:129;s:4:"slug";s:30:"understanding-error-correcting";s:11:"tab_display";s:11:"Application";s:5:"title";s:17:"What Is ECC DRAM?";s:8:"subtitle";s:17:"What Is ECC DRAM?";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260615_1_05.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:161:"Learn what ECC DRAM is, how error correction works, and why it matters for data integrity, system stability, networking security, and mission-critical computing.";s:14:"published_date";s:10:"06.15.2026";}i:3;a:9:{s:2:"id";i:123;s:4:"slug";s:25:"how-to-choose-nvr-storage";s:11:"tab_display";s:11:"Application";s:5:"title";s:73:"How to Choose NVR Storage: Key Factors for Efficient Surveillance Systems";s:8:"subtitle";s:73:"How to Choose NVR Storage: Key Factors for Efficient Surveillance Systems";s:11:"cover_image";s:23:"/storage/edms/cover.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:391:"NVR storage is not only about capacity planning. It also affects data integrity and long-term system reliability. For AI NVR and 24/7 recording environments, storage devices must handle heavy write workloads, RAID rebuilding, and continuous recording. As a result, choosing between HDD vs. SSD and selecting the right surveillance SSD have become critical for modern surveillance deployment.";s:14:"published_date";s:10:"06.03.2026";}i:4;a:9:{s:2:"id";i:112;s:4:"slug";s:33:"what-is-the-ssd-temperature-range";s:11:"tab_display";s:11:"Application";s:5:"title";s:34:"What Is the SSD Temperature Range?";s:8:"subtitle";s:34:"What Is the SSD Temperature Range?";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260116_5_04.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:542:"Temperature is the silent limiter of every SSD, and the SSD temperature range is both a performance spec as well as a reliability spec. Under sustained load, NVMe firmware tracks a composite temperature and will start to throttle lightly or heavily. So, write throughput drops hard and latency spikes. Heat also speeds charge leakage inside NAND, which accelerates retention loss. The effect worsens as cells age from program/erase wear. Thus, you burn endurance faster and raise data-retention trouble when the drive later remains unpowered.";s:14:"published_date";s:10:"01.16.2026";}i:5;a:9:{s:2:"id";i:111;s:4:"slug";s:36:"garbage-collection-in-industrial-ssd";s:11:"tab_display";s:11:"Application";s:5:"title";s:60:"Garbage Collection in Industrial SSDs: What You Need to Know";s:8:"subtitle";s:60:"Garbage Collection in Industrial SSDs: What You Need to Know";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260116_4_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:371:"Garbage collection in SSDs is the controller's quiet cleanup job. It compacts still-valid pages into new space and erases blocks that are now mostly junk. That might sound weird until you remember NAND flash can't overwrite a programmed page. It must erase first, and erase happens at the block level, not per page. So, updates become "write elsewhere, then clean later."";s:14:"published_date";s:10:"01.16.2026";}i:6;a:9:{s:2:"id";i:109;s:4:"slug";s:29:"what-is-ssd-over-provisioning";s:11:"tab_display";s:11:"Application";s:5:"title";s:29:"What Is SSD Over-Provisioning";s:8:"subtitle";s:29:"What Is SSD Over-Provisioning";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260105_3_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:631:"Inside every SSD, there is more physical NAND than the OS can see. Vendors reserve some of this flash as controller-only space that never appears as user capacity. Such a reserved region is referred to as over-provisioning (OP). For example, TechTarget reports an SSD having 976 GB of physical NAND but only 800 GB accessible to the host while leaving 176 GB as controller-only over-provisioned capacity. Furthermore, it stores internal metadata such as FTL mapping tables and bad-block pools. Along these lines, when you ask what is SSD over-provisioning, you are genuinely talking about this hidden working area inside the drive.";s:14:"published_date";s:10:"01.05.2026";}i:7;a:9:{s:2:"id";i:108;s:4:"slug";s:15:"what-is-ssd-plp";s:11:"tab_display";s:11:"Application";s:5:"title";s:96:"What Is SSD Power Loss Protection (PLP)? How It Works and Why It's Essential for Industrial SSDs";s:8:"subtitle";s:96:"What Is SSD Power Loss Protection (PLP)? How It Works and Why It's Essential for Industrial SSDs";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260105_2_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:454:"SSD power loss protection refers to a hardware-and-firmware safety net that helps keep an SSD from corrupting your data when power suddenly dies. Basically, it keeps an eye on the input voltage. When it detects any kind of brownout, it utilizes energy stored in capacitors on board. That additional energy lets the controller stop accepting new writes, flush volatile buffers to NAND, and finalize its internal mapping tables before everything goes dark.";s:14:"published_date";s:10:"01.05.2026";}i:8;a:9:{s:2:"id";i:107;s:4:"slug";s:20:"what-is-edge-storage";s:11:"tab_display";s:11:"Application";s:5:"title";s:96:"What Is Edge Storage? A Complete Guide to Edge Computing Storage Solutions for Modern Industries";s:8:"subtitle";s:96:"What Is Edge Storage? A Complete Guide to Edge Computing Storage Solutions for Modern Industries";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260105_1_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:515:"As industries accelerate their digital transformation, data is being generated at unprecedented speed. From sensors on factory floors to autonomous vehicles collecting real-time data, organizations need storage systems that can keep up with the demands of modern computing. This is where edge storage and edge storage solutions come in. Designed for environments where latency, reliability, and uninterrupted operations are critical, edge computing storage bridges the performance gap between devices and the cloud.";s:14:"published_date";s:10:"01.05.2026";}}s:10:"pagination";a:5:{s:5:"total";i:20;s:5:"count";i:9;s:8:"per_page";i:9;s:12:"current_page";i:1;s:11:"total_pages";i:3;}}}"
        $flags: 2
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Cache\FileStore.php:77 {
      Illuminate\Cache\FileStore->put($key, $value, $seconds) …
      › $result = $this->files->put(    $path, $this->expiration($seconds).serialize($value), true);
      arguments: {
        $path: "D:\xampp\htdocs\ia-prod-frontend\storage\framework/cache/data/ee/d9/eed972aa1ec201a02e006df48bf2701d7d236c6d"
        $contents: "1784719112a:4:{s:6:"status";s:7:"success";s:4:"code";i:200;s:7:"message";s:2:"OK";s:4:"data";a:2:{s:5:"items";a:9:{i:0;a:9:{s:2:"id";i:134;s:4:"slug";s:43:"medical-device-industrial-ssd-plp-fixed-bom";s:11:"tab_display";s:11:"Application";s:5:"title";s:49:"How to Choose Industrial SSD for Medical Devices?";s:8:"subtitle";s:49:"How to Choose Industrial SSD for Medical Devices?";s:11:"cover_image";s:104:"/storage/edms/醫療設備如何選擇工業級_ssdhealthcare_storage_與_plp_ssd_完整解析拷貝.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:393:"Medical devices are rapidly becoming more digital. From medical imaging systems, patient monitoring devices, endoscopy systems, and automated dispensing cabinets to healthcare edge gateways, an increasing number of healthcare applications must continuously record medical images, sensor data, operation logs, alarm events, and system status while supporting diagnostic and treatment workflows.";s:14:"published_date";s:10:"07.14.2026";}i:1;a:9:{s:2:"id";i:130;s:4:"slug";s:19:"what-is-an-nvme-ssd";s:11:"tab_display";s:11:"Application";s:5:"title";s:20:"What Is an NVMe SSD?";s:8:"subtitle";s:20:"What Is an NVMe SSD?";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260615_3_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:158:"Learn what an NVMe SSD is, how NVMe differs from SATA SSDs, and why NVMe storage is ideal for automation, industrial systems, and high-frequency data logging.";s:14:"published_date";s:10:"06.15.2026";}i:2;a:9:{s:2:"id";i:129;s:4:"slug";s:30:"understanding-error-correcting";s:11:"tab_display";s:11:"Application";s:5:"title";s:17:"What Is ECC DRAM?";s:8:"subtitle";s:17:"What Is ECC DRAM?";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260615_1_05.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:161:"Learn what ECC DRAM is, how error correction works, and why it matters for data integrity, system stability, networking security, and mission-critical computing.";s:14:"published_date";s:10:"06.15.2026";}i:3;a:9:{s:2:"id";i:123;s:4:"slug";s:25:"how-to-choose-nvr-storage";s:11:"tab_display";s:11:"Application";s:5:"title";s:73:"How to Choose NVR Storage: Key Factors for Efficient Surveillance Systems";s:8:"subtitle";s:73:"How to Choose NVR Storage: Key Factors for Efficient Surveillance Systems";s:11:"cover_image";s:23:"/storage/edms/cover.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:391:"NVR storage is not only about capacity planning. It also affects data integrity and long-term system reliability. For AI NVR and 24/7 recording environments, storage devices must handle heavy write workloads, RAID rebuilding, and continuous recording. As a result, choosing between HDD vs. SSD and selecting the right surveillance SSD have become critical for modern surveillance deployment.";s:14:"published_date";s:10:"06.03.2026";}i:4;a:9:{s:2:"id";i:112;s:4:"slug";s:33:"what-is-the-ssd-temperature-range";s:11:"tab_display";s:11:"Application";s:5:"title";s:34:"What Is the SSD Temperature Range?";s:8:"subtitle";s:34:"What Is the SSD Temperature Range?";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260116_5_04.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:542:"Temperature is the silent limiter of every SSD, and the SSD temperature range is both a performance spec as well as a reliability spec. Under sustained load, NVMe firmware tracks a composite temperature and will start to throttle lightly or heavily. So, write throughput drops hard and latency spikes. Heat also speeds charge leakage inside NAND, which accelerates retention loss. The effect worsens as cells age from program/erase wear. Thus, you burn endurance faster and raise data-retention trouble when the drive later remains unpowered.";s:14:"published_date";s:10:"01.16.2026";}i:5;a:9:{s:2:"id";i:111;s:4:"slug";s:36:"garbage-collection-in-industrial-ssd";s:11:"tab_display";s:11:"Application";s:5:"title";s:60:"Garbage Collection in Industrial SSDs: What You Need to Know";s:8:"subtitle";s:60:"Garbage Collection in Industrial SSDs: What You Need to Know";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260116_4_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:371:"Garbage collection in SSDs is the controller's quiet cleanup job. It compacts still-valid pages into new space and erases blocks that are now mostly junk. That might sound weird until you remember NAND flash can't overwrite a programmed page. It must erase first, and erase happens at the block level, not per page. So, updates become "write elsewhere, then clean later."";s:14:"published_date";s:10:"01.16.2026";}i:6;a:9:{s:2:"id";i:109;s:4:"slug";s:29:"what-is-ssd-over-provisioning";s:11:"tab_display";s:11:"Application";s:5:"title";s:29:"What Is SSD Over-Provisioning";s:8:"subtitle";s:29:"What Is SSD Over-Provisioning";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260105_3_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:631:"Inside every SSD, there is more physical NAND than the OS can see. Vendors reserve some of this flash as controller-only space that never appears as user capacity. Such a reserved region is referred to as over-provisioning (OP). For example, TechTarget reports an SSD having 976 GB of physical NAND but only 800 GB accessible to the host while leaving 176 GB as controller-only over-provisioned capacity. Furthermore, it stores internal metadata such as FTL mapping tables and bad-block pools. Along these lines, when you ask what is SSD over-provisioning, you are genuinely talking about this hidden working area inside the drive.";s:14:"published_date";s:10:"01.05.2026";}i:7;a:9:{s:2:"id";i:108;s:4:"slug";s:15:"what-is-ssd-plp";s:11:"tab_display";s:11:"Application";s:5:"title";s:96:"What Is SSD Power Loss Protection (PLP)? How It Works and Why It's Essential for Industrial SSDs";s:8:"subtitle";s:96:"What Is SSD Power Loss Protection (PLP)? How It Works and Why It's Essential for Industrial SSDs";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260105_2_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:454:"SSD power loss protection refers to a hardware-and-firmware safety net that helps keep an SSD from corrupting your data when power suddenly dies. Basically, it keeps an eye on the input voltage. When it detects any kind of brownout, it utilizes energy stored in capacitors on board. That additional energy lets the controller stop accepting new writes, flush volatile buffers to NAND, and finalize its internal mapping tables before everything goes dark.";s:14:"published_date";s:10:"01.05.2026";}i:8;a:9:{s:2:"id";i:107;s:4:"slug";s:20:"what-is-edge-storage";s:11:"tab_display";s:11:"Application";s:5:"title";s:96:"What Is Edge Storage? A Complete Guide to Edge Computing Storage Solutions for Modern Industries";s:8:"subtitle";s:96:"What Is Edge Storage? A Complete Guide to Edge Computing Storage Solutions for Modern Industries";s:11:"cover_image";s:39:"/storage/edms/seo_edm_20260105_1_03.jpg";s:4:"path";s:32:"/storage/edms/edm_style_2025.css";s:7:"summary";s:515:"As industries accelerate their digital transformation, data is being generated at unprecedented speed. From sensors on factory floors to autonomous vehicles collecting real-time data, organizations need storage systems that can keep up with the demands of modern computing. This is where edge storage and edge storage solutions come in. Designed for environments where latency, reliability, and uninterrupted operations are critical, edge computing storage bridges the performance gap between devices and the cloud.";s:14:"published_date";s:10:"01.05.2026";}}s:10:"pagination";a:5:{s:5:"total";i:20;s:5:"count";i:9;s:8:"per_page";i:9;s:12:"current_page";i:1;s:11:"total_pages";i:3;}}}"
        $lock: true
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Cache\Repository.php:211 {
      Illuminate\Cache\Repository->put($key, $value, $ttl = null) …
      › 
      › $result = $this->store->put($this->itemKey($key), $value, $seconds);arguments: {
        $key: "edm-en-687571f246b8c42af63a2b835a6fbe8f"
        $value: array:4 [ …4]
        $seconds: 3600
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Cache\CacheManager.php:418 {
      Illuminate\Cache\CacheManager->__call($method, $parameters) …
      › {    return $this->store()->$method(...$parameters);}
      arguments: {
        $key: "edm-en-687571f246b8c42af63a2b835a6fbe8f"
        $value: array:4 [ …4]
        $ttl: 3600
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:261 {
      Illuminate\Support\Facades\Facade::__callStatic($method, $args) …
      › 
      ›     return $instance->$method(...$args);}
      arguments: {
        $params: array:2 [ …2]
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\app\Services\AdataApiService.php:289 {
      App\Services\AdataApiService->parse(ResponseInterface $response, $cache_key = '') …
      › if ($this->enable_cache === true && !empty($cache_key)) {\r    Cache::put($cache_key, $body, $this->cache_ttl);\r}\r
      arguments: {
        $method: "put"
        $args: array:3 [ …3]
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\app\Services\AdataApiService.php:956 {
      App\Services\AdataApiService->getEdmList(array $params) …
      › \r    return $this->parse($response,  $cache_key);\r}\r
      arguments: {
        $response: GuzzleHttp\Psr7\Response {#501 …}
        $cache_key: "edm-en-687571f246b8c42af63a2b835a6fbe8f"
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:261 {
      Illuminate\Support\Facades\Facade::__callStatic($method, $args) …
      › 
      ›     return $instance->$method(...$args);}
      arguments: {
        $params: array:2 [ …2]
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\app\View\Composers\navComposer.php:91 {
      App\View\Composers\navComposer->__construct() …
      › \r$tabEdms = AdataApiService::getEdmList($params) ?? null;\rif ($tabEdms && isset($tabEdms['data']['items'])) {\r
      arguments: {
        $method: "getEdmList"
        $args: array:1 [ …1]
      }
    }
    App\View\Composers\navComposer->__construct() {}
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Container\Container.php:917 {
      Illuminate\Container\Container->build($concrete) …
      › 
      ›     return $reflector->newInstanceArgs($instances);}
      arguments: {
        $args: []
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Container\Container.php:754 {
      Illuminate\Container\Container->resolve($abstract, $parameters = [], $raiseEvents = true) …
      › if ($this->isBuildable($concrete, $abstract)) {    $object = $this->build($concrete);} else {
      arguments: {
        $concrete: "App\View\Composers\navComposer"
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:841 {
      Illuminate\Foundation\Application->resolve($abstract, $parameters = [], $raiseEvents = true) …
      › 
      ›     return parent::resolve($abstract, $parameters, $raiseEvents);}
      arguments: {
        $abstract: "App\View\Composers\navComposer"
        $parameters: []
        $raiseEvents: true
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Container\Container.php:692 {
      Illuminate\Container\Container->make($abstract, array $parameters = []) …
      › {    return $this->resolve($abstract, $parameters);}
      arguments: {
        $abstract: "App\View\Composers\navComposer"
        $parameters: []
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Application.php:826 {
      Illuminate\Foundation\Application->make($abstract, array $parameters = []) …
      › 
      ›     return parent::make($abstract, $parameters);}
      arguments: {
        $abstract: "App\View\Composers\navComposer"
        $parameters: []
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\View\Concerns\ManagesEvents.php:124 {
      Illuminate\View\Factory->Illuminate\View\Concerns\{closure} …
      › return function () use ($class, $method) {    return $this->container->make($class)->{$method}(...func_get_args());};
      arguments: {
        $abstract: "App\View\Composers\navComposer"
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\View\Concerns\ManagesEvents.php:162 {
      Illuminate\View\Factory->Illuminate\View\Concerns\{closure} …
      › $callback = function ($name, array $data) use ($callback) {    return $callback($data[0]);};
      arguments: {
        Illuminate\View\View {#491 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Events\Dispatcher.php:389 {
      Illuminate\Events\Dispatcher->Illuminate\Events\{closure} …
      › if ($wildcard) {    return $listener($event, $payload);}
      arguments: {
        "composing: Product.info"
        array:1 [ …1]
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Events\Dispatcher.php:237 {
      Illuminate\Events\Dispatcher->dispatch($event, $payload = [], $halt = false) …
      › foreach ($this->getListeners($event) as $listener) {    $response = $listener($event, $payload);arguments: {
        "composing: Product.info"
        array:1 [ …1]
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\View\Concerns\ManagesEvents.php:177 {
      Illuminate\View\Factory->callComposer(View $view) …
      › {    $this->events->dispatch('composing: '.$view->name(), [$view]);}
      arguments: {
        $event: "composing: Product.info"
        $payload: array:1 [ …1]
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\View\View.php:120 {
      Illuminate\View\View->renderContents() …
      › 
      › $this->factory->callComposer($this);arguments: {
        $view: Illuminate\View\View {#491 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\View\View.php:91 {
      Illuminate\View\View->render(callable $callback = null) …
      › try {    $contents = $this->renderContents();}
    D:\xampp\htdocs\ia-prod-frontend\app\Http\Controllers\ProductController.php:41 {
      App\Http\Controllers\ProductController->product(Request $request, $locale, $id) …
      ›     ])\r)->render();\rreturn $response;\r
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Controller.php:54 {
      Illuminate\Routing\Controller->callAction($method, $parameters) …
      › {    return $this->{$method}(...array_values($parameters));}
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $locale: "en"
        $id: "DDR5_ECC_CSODIMM"
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php:45 {
      Illuminate\Routing\ControllerDispatcher->dispatch(Route $route, $controller, $method) …
      › if (method_exists($controller, 'callAction')) {    return $controller->callAction($method, $parameters);}
      arguments: {
        $method: "product"
        $parameters: array:3 [ …3]
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Route.php:254 {
      Illuminate\Routing\Route->runController() …
      › return $this->controllerDispatcher()->dispatch(    $this, $this->getController(), $this->getControllerMethod());
      arguments: {
        $route: Illuminate\Routing\Route {#331 …}
        $controller: App\Http\Controllers\ProductController {#361 …}
        $method: "product"
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Route.php:197 {
      Illuminate\Routing\Route->run() …
      › if ($this->isControllerAction()) {    return $this->runController();}
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Router.php:695 {
      Illuminate\Routing\Router->Illuminate\Routing\{closure} …
      › return $this->prepareResponse(    $request, $route->run());
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:128 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › try {    return $destination($passable);} catch (Throwable $e) {
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\app\Http\Middleware\ValidateRouteParameter.php:32 {
      App\Http\Middleware\ValidateRouteParameter->handle(Request $request, Closure $next) …
      ›     */\r    return $next($request);\r}\r
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\app\Http\Middleware\Language.php:34 {
      App\Http\Middleware\Language->handle(Request $request, Closure $next) …
      ›     App::setLocale($set_lang);\r    return $next($request);\r}\r
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\app\Http\Middleware\ValidateHostHeader.php:43 {
      App\Http\Middleware\ValidateHostHeader->handle(Request $request, Closure $next) …
      ›     // 如果主機是信任的,則繼續處理請求\r    return $next($request);\r}\r
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php:50 {
      Illuminate\Routing\Middleware\SubstituteBindings->handle($request, Closure $next) …
      › 
      ›     return $next($request);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php:78 {
      Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle($request, Closure $next) …
      › ) {    return tap($next($request), function ($response) use ($request) {        if ($this->shouldAddXsrfTokenCookie()) {
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php:49 {
      Illuminate\View\Middleware\ShareErrorsFromSession->handle($request, Closure $next) …
      › 
      ›     return $next($request);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php:121 {
      Illuminate\Session\Middleware\StartSession->handleStatefulRequest(Request $request, $session, Closure $next) …
      › 
      › $response = $next($request);arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php:64 {
      Illuminate\Session\Middleware\StartSession->handle($request, Closure $next) …
      › 
      ›     return $this->handleStatefulRequest($request, $session, $next);}
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $session: Illuminate\Session\Store {#429 …}
        $next: Closure($passable) {#418 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php:37 {
      Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle($request, Closure $next) …
      › {    $response = $next($request);arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php:67 {
      Illuminate\Cookie\Middleware\EncryptCookies->handle($request, Closure $next) …
      › {    return $this->encrypt($next($this->decrypt($request)));}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:103 {
      Illuminate\Pipeline\Pipeline->then(Closure $destination) …
      › 
      ›     return $pipeline($this->passable);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Router.php:697 {
      Illuminate\Routing\Router->runRouteWithinStack(Route $route, Request $request) …
      ›                         );                    });}
      arguments: {
        $destination: Closure($request) {#411 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Router.php:672 {
      Illuminate\Routing\Router->runRoute(Request $request, Route $route) …
      › return $this->prepareResponse($request,    $this->runRouteWithinStack($route, $request));
      arguments: {
        $route: Illuminate\Routing\Route {#331 …}
        $request: Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Router.php:636 {
      Illuminate\Routing\Router->dispatchToRoute(Request $request) …
      › {    return $this->runRoute($request, $this->findRoute($request));}
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $route: Illuminate\Routing\Route {#331 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Routing\Router.php:625 {
      Illuminate\Routing\Router->dispatch(Request $request) …
      › 
      ›     return $this->dispatchToRoute($request);}
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:166 {
      Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure} …
      › 
      ›     return $this->router->dispatch($request);};
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:128 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › try {    return $destination($passable);} catch (Throwable $e) {
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\statikbe\laravel-cookie-consent\src\CookieConsentMiddleware.php:12 {
      Statikbe\CookieConsent\CookieConsentMiddleware->handle($request, Closure $next) …
      › {    $response = $next($request);arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php:21 {
      Illuminate\Foundation\Http\Middleware\TransformsRequest->handle($request, Closure $next) …
      › 
      ›     return $next($request);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull.php:31 {
      Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle($request, Closure $next) …
      › 
      ›     return parent::handle($request, $next);}
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#344 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php:21 {
      Illuminate\Foundation\Http\Middleware\TransformsRequest->handle($request, Closure $next) …
      › 
      ›     return $next($request);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TrimStrings.php:40 {
      Illuminate\Foundation\Http\Middleware\TrimStrings->handle($request, Closure $next) …
      › 
      ›     return parent::handle($request, $next);}
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#345 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php:27 {
      Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle($request, Closure $next) …
      › 
      ›     return $next($request);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance.php:86 {
      Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle($request, Closure $next) …
      › 
      ›     return $next($request);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\fruitcake\laravel-cors\src\HandleCors.php:38 {
      Fruitcake\Cors\HandleCors->handle($request, Closure $next) …
      › if (! $this->shouldRun($request)) {    return $next($request);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\app\Http\Middleware\CanonicalUrl.php:61 {
      App\Http\Middleware\CanonicalUrl->handle(Request $request, Closure $next) …
      › \r    return $next($request);\r}\r
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\fideloper\proxy\src\TrustProxies.php:57 {
      Fideloper\Proxy\TrustProxies->handle(Request $request, Closure $next) …
      › 
      ›     return $next($request);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:167 {
      Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure} …
      › $carry = method_exists($pipe, $this->method)                ? $pipe->{$this->method}(...$parameters)                : $pipe(...$parameters);
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
        $next: Closure($passable) {#350 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:103 {
      Illuminate\Pipeline\Pipeline->then(Closure $destination) …
      › 
      ›     return $pipeline($this->passable);}
      arguments: {
        Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:141 {
      Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter($request) …
      ›                 ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware)                ->then($this->dispatchToRouter());}
      arguments: {
        $destination: Closure($request) {#50 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:110 {
      Illuminate\Foundation\Http\Kernel->handle($request) …
      › 
      ›     $response = $this->sendRequestThroughRouter($request);} catch (Throwable $e) {
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
      }
    }
    D:\xampp\htdocs\ia-prod-frontend\public\index.php:52 {$response = tap($kernel->handle(\r    $request = Request::capture()\r))->send();\r
      arguments: {
        $request: Illuminate\Http\Request {#43 …}
      }
    }
  }
}