public function make(string $username, string $password, string $email): User
    {
        $this->validate(compact('username', 'password', 'email'));

        $user = wp_create_user($username, $password, $email);

        if (is_a($user, 'WP_Error')) {
            if ('existing_user_login' === $user->get_error_code()) {
                throw new DuplicateUserException($user->get_error_message());
            }

            throw new UserException($user->get_error_message());
        }

        return $this->get($user);
    }