<?php
use Behat\MinkExtension\Context\MinkContext;
class BaseContext extends MinkContext
{
  /**
   * @param $closure
   * @param int $tries
   * @return mixed
   * @throws Exception
   */
  public function spins($closure, $tries = 40)
  {
      for ($i = 0; $i <= $tries; $i++) {
          try {
              $closureResult = $closure();
              return $closureResult;
          } catch (Exception $e) {
              if ($i == $tries) {
                  throw $e;
              }
          }
          usleep(250000);
      }
  }
  
  public function sampleSpinsUsage()
  {
          $this->spins(function () {              
              //do something...
          });
      }
  }
}