protected function getPayload(Settings $settings) : array
    {
        $settings->hasRequiredSettings();

        $now = Carbon::now()->toDateTimeString();

        if ($this->config->get('tracker.save_rendered', true) && $settings->data !== null) {
            $rendered = markdown($settings->data);
        }

        return [
            'user_id'           => $settings->user,
            'ipv4'              => $settings->ipv4(),
            'user_agent'        => $settings->userAgent(),
            'request_method'    => $settings->requestMethod(),
            'request_url'       => $settings->requestUrl(),
            'type'              => strtolower($settings->type),
            'type_id'           => $settings->typeId,
            'item_id'           => $settings->itemId,
            'level'             => (int) $settings->flagLevel,
            'trackable_type'    => $settings->trackType !== Tracker::TRACKER_ANY ? $settings->trackType : Tracker::TRACKER_TRAIL,
            'data'              => $settings->data,
            'data_rendered'     => $rendered ?? null,
            'created_at'        => $now,
            'updated_at'        => $now,
        ];
    }