PWM + power down mode

I have a project where I'm using an Arduino Pro mini 168P for switching on relays and mosfet based on the IR codes received from a remote control.

Based on the IR code received, the pro-mini will switch on/off relays and the mosfet and then power down.

When using the PWM to power on the mosfet, it starts blinking. Apparently it's the power down mode which is doing that. When the power down mode is disabled, the PWM signal works fine.

How can I make the PWM signal work and use less power ?

//Arduino pro-mini
//5v 168p

#include <LowPower.h>
#include <IRremote.h>

#define RECV_PIN 2
#define mosfet 9
#define sleepLed 8
#define relay1 11
#define relay2 12

#define button_up 0xFF629D
#define button_down 0xFFA857
#define button_ok 0xFF02FD
#define button_4 0xFF30CF
#define button_5 0xFF18E7

volatile byte stateR1 = LOW;
volatile byte stateR2 = LOW;

int brightness = 0;
int counter;
int val;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  pinMode(RECV_PIN, INPUT);
  pinMode(mosfet, OUTPUT);
  pinMode(sleepLed, OUTPUT);
  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  irrecv.enableIRIn();
  digitalWrite(relay1, stateR1);
  digitalWrite(relay2, stateR2);

  digitalWrite(sleepLed, HIGH);
  delay(1000);
  digitalWrite(sleepLed, LOW);

  attachInterrupt(digitalPinToInterrupt(RECV_PIN), blink, CHANGE);
}

void blink() {}

void loop() {
  delay(500);

  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);

    switch (results.value) {
      case button_ok:
        if (counter > 0) {
          analogWrite(mosfet, 0);
          counter = 0;
        }
        else {
          analogWrite(mosfet, 255);
          counter = 5;
        }
        break;
      case button_up:
        if (counter < 5)
          counter++;
        val = map(counter, 0, 5, 0, 255);
        analogWrite(mosfet, val);
        break;
      case button_down:
        if (counter > 0)
          counter--;
        val = map(counter, 0, 5, 0, 255);
        analogWrite(mosfet, val);
        break;
      case button_4:
        stateR1 = !stateR1;
        digitalWrite(relay1, stateR1);
        break;
      case button_5:
        stateR2 = !stateR2;
        digitalWrite(relay2, stateR2);
        break;
      default:
        break;
    }

    irrecv.resume();
  } //ir codes end

  delay(200);
  if (counter < 1) {
    digitalWrite(sleepLed, HIGH);
    delay(1000);
    digitalWrite(sleepLed, LOW);
    LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
  }
}