async save(linkClick) {
        let member;

        if (config && config.get('linkClickTrackingCacheMemberUuid')) {
            member = await this.memoizedFindOne(linkClick.member_uuid);
        } else {
            member = await this.#Member.findOne({uuid: linkClick.member_uuid});
        }

        if (!member) {
            if (config.get('bulkEmail:captureLinkClickBadMemberUuid')) {
                sentry.captureMessage('LinkClickTrackingService > Member not found', {extra: {member_uuid: linkClick.member_uuid}});
            }
            return;
        }

        const model = await this.#MemberLinkClickEventModel.add({
            // Only store the pathname (no support for variable query strings)
            redirect_id: linkClick.link_id.toHexString(),
            member_id: member.id
        }, {});

        linkClick.event_id = ObjectID.createFromHexString(model.id);

        // Dispatch event
        this.#DomainEvents.dispatch(this.#MemberLinkClickEvent.create({memberId: member.id, memberLastSeenAt: member.get('last_seen_at'), linkId: linkClick.link_id.toHexString()}, new Date()));
    }
@param {LinkClick} linkClick
@returns {Promise<void>}