Build multiple groups of requests

I have written a function buildGroupRequests() to build an array of multiple groups.

It checks the size of the request group. If a request group is greater than MAXSIZE = 50 then it will create another group in an array.

The logic seems to be complicated, is there a way to rewrite this to be more readable and maintainable in future?

console.log(
  buildGroupRequests([
    { put: "/firstName=Danny" },
    { put: "/lastName=Williams" },
    { put: "/email=danny.w@domain.com" }
  ])
);

function buildGroupRequests(lists) {
  const MAXSIZE = 50;

  return lists.reduce((group, insert) => {
    const LASTINDEX = group.length - 1;

    if (!group.length) {
      group.push({ put: "PUT " + insert.put });
      return group;
    }

    const insertGroup = group[LASTINDEX];
    const tempPutSet = insertGroup.put + " + " + insert.put;

    if (tempPutSet.length > MAXSIZE) {
      group.push({ put: "PUT " + insert.put });

      return group;
    }

    group[LASTINDEX].put = tempPutSet;
    return group;
  }, []);
}