Move preauth expiration logic to service