public function restoreFromArchive($bulk = false)
    {
        if ($this->getIsArchived()) {
            $this->connection->transact(function () use ($bulk) {
                $this->triggerEvent('on_before_restore_from_archive', [$bulk]);

                if ($bulk && method_exists($this, 'getOriginalIsArchived') && method_exists($this, 'setOriginalIsArchived')) {
                    $this->setIsArchived($this->getOriginalIsArchived());
                    $this->setOriginalIsArchived(false);
                } else {
                    $this->setIsArchived(false);
                }

                $this->save();

                $this->triggerEvent('on_after_restore_from_archive', [$bulk]);
            });
        }
    }