Function is calling only for if case not else? do you know a proper way to call?

How can i call this function
all of the codes are ok. just not understanding how to call this function over there
because for not proper calling this Find_User to Login .email authentication is not happening.
please tell me

func Find_User(user *model.User) (model.User, error) {

	filter := bson.M{"email": user.Email}
	result := model.User{}
	err := clientInstance.Database(AUTH_DB).Collection(USER_COLLECTION).FindOne(context.Background(), filter).Decode(&result)
	if err != nil {
		if errors.Is(err, mongo.ErrNoDocuments) {
			return model.User{}, nil
		}
		return model.User{}, fmt.Errorf("finding user:%w", err)
	}
	return result, nil
}

login function

func Login_User(user *model.User) (interface{}, error) {

	if result, err := util.Find_User(user); err == nil {
		return result, err
	} else {
		return nil, err
	}
}

over here

func Login(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-Type", "application/json")
	var user model.User
	var dbuser model.User
	if err := json.NewDecoder(r.Body).Decode(&user); err == nil {
//below i am calling the function
		if _, err := service.Login_User(&user); err == nil {
			w.Write([]byte(`{"response":"Login success"}`))
		} else {

			w.WriteHeader(http.StatusInternalServerError)
			w.Write([]byte(`{"response":Login Failed}`))
			return
		}
	} else {
		http.Error(w, err.Error(), http.StatusBadRequest)
		return
	}
	userPass := []byte(user.Password)
	dbPass := []byte(dbuser.Password)
	passErr := bcrypt.CompareHashAndPassword(dbPass, userPass)
	if passErr != nil {
		w.Write([]byte(`{"response":"Wrong Password!"}`))
		return
	}
	
}

Hi!
First you can reduce number of ifs

	if err := json.NewDecoder(r.Body).Decode(&user); err != nil {
		http.Error(w, err.Error(), http.StatusBadRequest)
		return
        }