protected function getNextAttemptDate(int $previousAttempts)
{
switch ($previousAttempts)
{
case 0: $delay = 5 * 60; break; // 5 minutes
case 1: $delay = 30 * 60; break; // 30 minutes
case 2: $delay = 3600; break; // 1 hour
case 3: $delay = 12 * 60 * 60; break; // 12 hours
case 4: $delay = 24 * 60 * 60; break; // 24 hours
default: return null; // give up
}...