public static function fetchWithKey(
        string $key,
        $where,
        array $fields = null,
        string $orderField = null,
        string $orderDirection = null,
        int $limit = null,
        int $start = null
    ): array {
        $data = [];

        foreach (static::fetch($where, $fields, $orderField, $orderDirection, $limit, $start) as $record) {
            $data[$record->$key] = $record;
        }

        return $data;
    }