Como desativar do sistema após a data definida

Tenho uma funcionalidade onde defino o dia e validade de uma licença no sistema, qual seria a melhor forma do sistema desativar automaticamente? Alguém pode mandar um exemplo

Obs: Estou trabalhando com laravel como back-end

No front o admin pode aprovar, desativar e recusar a licença do usuário.

---- Parte do código que desativa a licença, “pedente” foi definido quando ele não foi aprovada e nem recusada esse status fica assim a cada nova licença cadastrada no sistema.

   public function desativarLicenca(Request $request, $idLicenca) {

       $licenca = Licenca::findOrFail($idLicenca); // pega o id da licenca

       $input ['operando'] = false;  // valida como false

       $input['status'] = 'Pendente'; //status pendente

       $licenca->update($input);  // salva as alterações
     
       return response()->json(['message'=> "Licença desaprovada com sucesso!"], 201);
  }

Você pode fazer com que o usuário não consiga logar no sistema se a licença dele estiver expirada.

Com desativar o sistema, você quer dizer impedir o usuário de fazer login?

Sim

Eu perguntei pro cara, lucas SIOADHUIHASUID

kkkkk putz, nem reparei quem fez a pergunta kkkkk

É quase isso, só que a licença do usuário ficaria como pendente ou seja ficaria desativada após a data de validade o status muda para pendente como mostra o trecho do código que mandei…

 $input['status'] = 'Pendente';

Exemplo: No dia 26/02/2019 uma licença passou da sua validade o sistema automaticamente a meia noite do dia 27 desativaria a licença do usuário…

Sobre sua dúvida, o usuário não seria impedido de acessar o sistema e sim sua licença não estaria ativa no sistema é o mesmo do alvará se alguém tem ela vencida ela é marcada como vencida só volta ao normal depois que o admin muda a data de validade, como sistema é de alto fluxo de dados fica chato ficar lá desativando manualmente quando passou da validade…

Eu tenho uma lógica que pode ser uma boa.

Você está armazenando a data que o status expira, certo? Ok.
Vamos supor que 26/01/2019 eu comprei a licença, logo a data está armazenada no banco de dados, sendo assim já grava automaticamente uma data 1 mês a frente, quando ambos os campos são comparados e igualados, o status muda.

Falei besteira?

Veja um exemplo do que eu quis dizer:

  <?php
 $data1 = '2013-05-21';
 $data2 = '2013-05-22';

 // Comparando as Datas
 if(strtotime($data1) !== strtotime($data2))
 {
  echo 'A data 1 é diferente da data 2.';
 }
 elseif(strtotime($data1) == strtotime($data2))
 {
  echo 'A data 1 é igual a data 2.';
 }

Na hora do cadastro ele define a data inicio e a data de validade.

A lógica seria passando da validade a licença seja desativada automaticamente sem precisar clicar no botão. Tipo promoção em loja online, conseguiu entender ?