LoRa response too late

And this is the client code (the ESP32 that receives the LoRa command and sets the LED to that value)

#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>  
#include <Adafruit_SSD1306.h>

//#include <FastLED.h>
#define NUM_LEDS 4 //16
#define LED_PIN 4
#define LED_TYPE    WS2812B
#define COLOR_ORDER RGB
//CRGB leds[NUM_LEDS];

#define SCK     5    // GPIO5  -- SX1278's SCK
#define MISO    19   // GPIO19 -- SX1278's MISO
#define MOSI    27   // GPIO27 -- SX1278's MOSI
#define SS      18   // GPIO18 -- SX1278's CS
#define RST     14   // GPIO14 -- SX1278's RESET
#define DI0     26   // GPIO26 -- SX1278's IRQ(Interrupt Request)
#define BAND    868E6

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
String rssi = "RSSI --";
String packSize = "--";
String packet = "";

char Message;
int msize;
int firstmessage = 0;

int Red;
int Green;
int Blue;
int Bright;

void loraData(){
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,15);
  display.println("Received "+ packSize + " bytes");
  display.setCursor(0,0);
  display.println(rssi);
  display.setCursor(0,30);
  display.println(packet);
  display.display();

  if ( packet.startsWith("GET_STATUS")) {
    Serial.println("LORA_OK");
    delay(25);
    LoRa.beginPacket();
    LoRa.print("LORA_OK");
    LoRa.endPacket();
    if (firstmessage == 0) {
      LoRa.beginPacket();
      LoRa.print("LORA_OK");
      LoRa.endPacket();
      firstmessage = 1;
    }
    packet = "";
  } else if ( packet.startsWith("SET_RED=")) {
    Serial.println("SET_RED");
    packet.remove(0, 8);
    Red = packet.toInt();
    delay(25);
    LoRa.beginPacket();
    LoRa.print("RED_OK");
    LoRa.endPacket();
    packet = "";
  } else if ( packet.startsWith("SET_GREEN=")) {
    Serial.println("SET_GREEN");
    packet.remove(0, 10);
    Green = packet.toInt();
    Serial.println(Green);
    delay(25);
    LoRa.beginPacket();
    LoRa.print("GREEN_OK");
    LoRa.endPacket();
    packet = "";
  } else if ( packet.startsWith("SET_BLUE=")) {
    Serial.println("SET_BLUE");
    packet.remove(0, 9);
    Blue = packet.toInt();
    Serial.println(Blue);
    delay(25);
    LoRa.beginPacket();
    LoRa.print("BLUE_OK");
    LoRa.endPacket();
    packet = "";
  } else if ( packet.startsWith("SET_BRIGHT=")) {
    Serial.println("SET_BRIGHT");
    packet.remove(0, 11);
    Bright = packet.toInt();
    Serial.println(Bright);
    //FastLED.setBrightness(Bright);
    for( int i = 0; i < NUM_LEDS; i++) {
    //leds[i] = CRGB( Red, Green, Blue);
    }
    //FastLED.show();
    delay(25);
    LoRa.beginPacket();
    LoRa.print("BRIGHT_OK");
    LoRa.endPacket();
    packet = "";
  } else {
    packet = "";
    }
    delay(random(25) + 50);
      LoRa.receive();
}

void cbk(int packetSize) {
  packet ="";
  packSize = String(packetSize,DEC);
  for (int i = 0; i < packetSize; i++) { packet += (char) LoRa.read(); }
  rssi = "RSSI " + String(LoRa.packetRssi(), DEC) ;
  loraData();
}

void setup() {
  pinMode(16,OUTPUT);
  digitalWrite(16, LOW);    // set GPIO16 low to reset OLED
  delay(50); 
  digitalWrite(16, HIGH); // while OLED is running, must set GPIO16 in high、
  
  Serial.begin(115200);
  while (!Serial);
  Serial.println();
  Serial.println("LoRa Receiver");
  Serial.println("Preparing LED...");

  delay( 3000 ); // power-up safety delay
  //FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  
  Serial.println("Starting LoRa...");
  SPI.begin(SCK,MISO,MOSI,SS);
  LoRa.setPins(SS,RST,DI0);  
  if (!LoRa.begin(868E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }
  //LoRa.onReceive(cbk);
  LoRa.receive();
  Serial.println("init ok");
  display.begin(SSD1306_SWITCHCAPVCC, 0x3c);

  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("LoRa Receiver");
  display.display();
  
  delay(1500);
}

void loop() {
  int packetSize = LoRa.parsePacket();
  msize = LoRa.parsePacket();
  if (packetSize) { cbk(packetSize);  }
  delay(10);
}