Please note, add() works a litte different than for DateTime-Objects.
Since DateTimeImmutable is in fact immutable. A line like this will not work:
    $di = new DateTimeImmutable("2018-12-12T10:00:00");
    $di->add(new DateInterval('PT45M')); // $di unchanged !!!
compared to
    $dt = new DateTime("2018-12-12T10:00:00");
    $dt->add(new DateInterval('PT45M')); // added 45 minutes
so you need to write
    $di = new DateTimeImmutable("2018-12-12T10:00:00");
    $di = $di->add(new DateInterval('PT45M')); // $di now changed