Why does this need to process, can't you just do the checks on pickup?