public function isValid()
    {
        $data = $this->toArray();

        $missing = array_diff(self::$REQUIRED_FIELDS, array_keys($data));

        if ($missing) {
            throw new \InvalidArgumentException('Config is missing the following keys: ' . implode(', ', $missing));
        }

        return true;
    }